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源代码数组统计count分析
Aug 02 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
zend optimizer在wamp的基础上安装图文教程
Oct 26 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
php数组排序usort、uksort与sort函数用法
Nov 17 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
php编写一个简单的路由类
2011/04/13 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
javascript里的条件判断
2007/02/27 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
VUE多层路由嵌套实现代码
2017/05/15 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
使用Python编写vim插件的简单示例
2015/04/17 Python
python3 flask实现文件上传功能
2020/03/20 Python
python字典排序的方法
2019/10/12 Python
python3跳出一个循环的实例操作
2020/08/18 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
大学生怎样进行自我评价
2013/12/07 职场文书
年会主持词结束语
2014/03/27 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
农村文化活动总结
2014/08/28 职场文书
军训后的感想
2015/08/07 职场文书
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL