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 相关文章推荐
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
php抛出异常与捕捉特定类型的异常详解
Oct 26 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
php通过各种函数判断0和空
Jul 04 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 PHP
php数组和链表的区别总结
Sep 20 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 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从数组中随机抽取一些元素的代码
2012/11/05 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
实例讲解PHP表单处理
2019/02/15 PHP
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
关于Python数据结构中字典的心得
2017/12/04 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
详解Django中间件执行顺序
2018/07/16 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
Python安装OpenCV的示例代码
2020/03/05 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
Python文件操作的面试题
2013/06/22 面试题
《胡杨》教学反思
2014/02/16 职场文书
《风筝》教学反思
2014/04/10 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
致运动员赞词
2015/07/22 职场文书