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 相关文章推荐
基于mysql的论坛(5)
Oct 09 PHP
动态生成gif格式的图像要注意?
Oct 09 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
PHP 翻页 实例代码
Aug 07 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
PHP对象实例化单例方法
Jan 19 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 PHP
如何理解PHP核心特性命名空间
May 28 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
Python实现手势识别
2020/10/21 Python
生态学毕业生自荐信
2013/10/27 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
培训班开班主持词
2015/07/02 职场文书
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python