本文實例講述了Yii2.0框架實現帶分頁的多條件搜索功能。分享給大家供大家參考,具體如下:
方法一
在控制器中
public function actionShow(){ $where['title']=Yii::$app->request->get('title'); $where['content']=Yii::$app->request->get('content'); $query=new Query(); $query->from('votes'); // votes 是表名 if(!empty($where['title'])||!empty($where['content'])){ $query->andFilterWhere( ['like','title',$where['title']] )->orFilterWhere( ['like','content',$where['content']] ); } $users=$query->from('votes')->all(); $pages = new Pagination(['totalCount' =>$query->count(),'pageSize'=>'2']); $users = $query->offset($pages->offset)->limit($pages->limit)->all(); return $this->render('show',['data'=>$users,'where'=>$where,'pages'=>$pages]);}
在v層
<?phpuse yii/helpers/Html;use yii/widgets/ActiveForm;use yii/helpers/Url;use yii/widgets/LinkPager;?>
<?php$form=ActiveForm::begin([ 'action'=>Url::toRoute(['show']), 'method'=>'get',]);echo '姓名'," ",Html::input('text','title');echo '簡介'," ",Html::input('text','content');echo Html::submitButton('提交');ActiveForm::end();echo "<br/>";echo "<br/>";?>
顯示在v層的分頁
<?phpecho LinkPager::widget([ 'pagination'=>$pages, 'nextPageLabel'=>'下一頁', 'firstPageLabel'=>'首頁'])?>
方法二(不帶分頁 是另外一種方法)
public function actionShow(){ $titles=Yii::$app->request->post('title'); $content=Yii::$app->request->post('content'); $where=1; if($titles!=""){ $where.=" and title like '%$titles%'"; } if($content!=""){ $where.=" and content like '%$content%'"; } $sql="select * from votes where $where"; $users=Yii::$app->db->createCommand($sql)->query(); return $this->render('show',['data'=>$users]);}
希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選