yii框架中,搜索的表单和后台执行,以及分页



view层

use yii\widgets\LinkPager;
use yii\widgets\ActiveForm;
use yii\helpers\Html;
use yii\helpers\Url;

$form=ActiveForm::begin([
        'action'=>Url::toRoute(['admin/search']), //跳转的地址
        'method'=>'get',

    ]);
  echo '班级名称:','',Html::input('text','cla_name',$data['cla_name']);
  echo '简介关键字:',Html::input('text','cla_desc',$data['cla_desc']);
  echo '添加时间:',Html::input('text','cla_time',$data['cla_time']);
  echo Html::submitButton('查询');
ActiveForm::end();

?>

控制器层  搜索和搜索时分页

/**
     * 管理员搜索查看那些课程
     * 分页显示  
     * 多条件搜索
     *  
     */
    public function actionSearch(){
      //接搜索传过来的值
      $data=yii::$app->request->get();
      //实例化查询类
      $query=new \yii\db\Query();
      //查询表
      $query->from('classes');
      //判断班级名称的值是否存在,不存在则为空
      if(isset($data['cla_name'])&&$data['cla_name']!=''){
        $query->andWhere(['like','cla_name',$data['cla_name']]);   //是andWhere  不是addwhere  括号里是数组
      }else{
        $data['cla_name']='';
      }
      //判断班级描述是否为空,否则的话就为空
      if(isset($data['cla_name'])&&$data['cla_desc']!=''){
          $query->andWhere(['like','cla_desc',$data['cla_desc']]);
      }else{
          $data['cla_desc']='';
      }
      //判断添加的时间   (特殊情况,在此不在进行判断,直接赋值是空)
      $data['cla_time']='';

      // $cla=new Classes();
      // $arr=$cla->find();
      $pages= new Pagination([
            'totalCount'=>$query->count(),
            'pageSize'  => 2   //每页显示条数

            ]);
      $models = $query->offset($pages->offset)  //查询出来的每一页的
                  ->limit($pages->limit)
                  ->all();  
      return $this->render('search', [
                'models' => $models,
                'pages'  => $pages,
                'data'   =>$data,  //搜索的默认值
        ]);
     
    }

你可能感兴趣的:(yii框架)