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概述.
Oct 09 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 PHP
基于php split()函数的用法详解
Jun 05 PHP
php实现文件编码批量转换
Mar 10 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
php比较相似字符串的方法
Jun 05 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
php 可变函数使用小结
Jun 12 PHP
php模拟post提交请求调用接口示例解析
Aug 07 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
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP7常量数组用法分析
2016/09/26 PHP
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
python基础教程之缩进介绍
2014/08/29 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
学习python可以干什么
2019/02/26 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
Python 如何在字符串中插入变量
2020/08/01 Python
python中字典增加和删除使用方法
2020/09/30 Python
python openpyxl模块的使用详解
2021/02/25 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
高中运动会入场词
2014/02/14 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
六年级作文之自救
2019/12/19 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
MySQL Server 层四个日志
2022/03/31 MySQL