yii框架中,搜索的表單和後臺執行,以及分頁



view層

<?php

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,  //搜索的默認值
        ]);
     
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章