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中session_unset与session_destroy的区别分析
Jun 16 PHP
提高PHP编程效率的方法
Nov 07 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
PHP6新特性分析
Mar 03 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
php表单习惯用的正则表达式
Oct 11 PHP
详解PHP发送邮件知识点
May 06 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 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类
2006/07/15 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
javascript 伪数组实现方法
2010/10/11 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
Python 通配符删除文件的实例
2018/04/24 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
pycharm的python_stubs问题
2020/04/08 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
家长建议怎么写
2014/05/15 职场文书
超市周年庆活动方案
2014/08/16 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
个人专业技术总结
2015/03/05 职场文书
个人培训总结
2015/03/05 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS