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编程中八种常见的文件操作方式
Nov 19 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
php 注册时输入信息验证器的实现详解
Jul 05 PHP
php数组合并与拆分实例分析
Jun 12 PHP
8个必备的PHP功能开发
Oct 02 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
php函数式编程简单示例
Aug 08 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语言的7种基本的排序方法
2020/12/28 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
利用ctypes提高Python的执行速度
2016/09/09 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
python 二维数组90度旋转的方法
2019/01/28 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
如何通过python实现人脸识别验证
2020/01/17 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
Python实现SMTP邮件发送
2020/06/16 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
什么是测试驱动开发(TDD)
2012/02/15 面试题
CAD制图设计师自荐信
2014/01/29 职场文书
家长写给孩子的评语
2014/04/18 职场文书
不错的求职信范文
2014/07/20 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
安全教育第一课观后感
2015/06/17 职场文书
浅析Python实现DFA算法
2021/06/26 Python
Oracle表空间与权限的深入讲解
2021/11/17 Oracle
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL