Yii2.0框架实现带分页的多条件搜索功能示例

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层

  <?php  use yiihelpersHtml;  use yiiwidgetsActiveForm;  use yiihelpersUrl;  use yiiwidgetsLinkPager;  ?>
  <?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层的分页

  <?php  echo 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程序设计有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论