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出现Cannot modify header information问题的解决方法大全
Apr 09 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
php 进度条实现代码
Mar 10 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
ueditor 1.2.6 使用方法说明
Jul 24 PHP
微信API接口大全
Apr 15 PHP
php实现生成验证码实例分享
Apr 10 PHP
PHP简单遍历对象示例
Sep 28 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 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
十天学会php之第七天
2006/10/09 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
举例讲解Python中装饰器的用法
2015/04/27 Python
python九九乘法表的实例
2017/09/26 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
python学生管理系统
2019/01/30 Python
python中append实例用法总结
2019/07/30 Python
Python通过socketserver处理多个链接
2020/03/18 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
UML设计模式笔试题
2014/06/07 面试题
个人工作表现评语
2014/04/30 职场文书
拉拉队口号
2014/06/16 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
民主评议党员个人总结
2015/02/13 职场文书
淮海战役观后感
2015/06/11 职场文书
少先队中队工作总结2015
2015/07/23 职场文书