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生成月历代码
Jun 14 PHP
PHP mkdir()定义和用法
Jan 14 PHP
详解php的魔术方法__get()和__set()使用介绍
Sep 19 PHP
php简单开启gzip压缩方法(zlib.output_compression)
Apr 13 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
Apr 10 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
php使用CURL伪造IP和来源实例详解
Jan 15 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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中在PDO中使用事务(Transaction)
2011/05/14 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python实现求解括号匹配问题的方法
2018/04/17 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
护理专业学生的求职信范文
2013/12/11 职场文书
管理信息系学生的自我评价
2014/01/11 职场文书
清洁工岗位职责
2014/01/29 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
教师对学生的寄语
2014/04/03 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
党支部综合考察材料
2014/05/19 职场文书
法定授权委托证明书
2014/09/27 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
利用javaScript处理常用事件详解
2021/04/14 Javascript