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


Posted in PHP onFebruary 20, 2019

本文实例讲述了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 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层的分页

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

PHP 相关文章推荐
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
php微信开发之图片回复功能
Jun 14 PHP
PHP中“=&gt;
Mar 01 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 PHP
PHP获取访问设备信息的方法示例
Feb 20 #PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 #PHP
PHP调用全国天气预报数据接口查询天气示例
Feb 20 #PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 #PHP
php原生数据库分页的代码实例
Feb 18 #PHP
PHP实现文字写入图片功能
Feb 18 #PHP
php分享朋友圈的实现代码
Feb 18 #PHP
You might like
虫族 ZERG 概述
2020/03/14 星际争霸
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
php实现简易计算器
2020/08/28 PHP
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python实现简单爬虫功能的示例
2016/10/24 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
python 多线程重启方法
2019/02/18 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
高中毕业自我鉴定
2013/12/19 职场文书
工作个人的自我评价
2014/01/14 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
文明班级建设方案
2014/05/15 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
行政复议决定书
2015/06/24 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL