Yii2实现同时搜索多个字段的方法


Posted in PHP onAugust 10, 2016

本文实例讲述了Yii2实现同时搜索多个字段的方法。分享给大家供大家参考,具体如下:

Yii2中搜索字段是用的andFilterWhere这个方法,用它可以搜索一个一段。

如果是搜索多个字段的话 ,比如搜索文章标题和文章内容是是否包含需要搜索的关键词,因为他们两个的关系是or,所以就要用到orFilterWhere这个方法

下面就是全部的代码

public function actionIndex()
{
  $key =Yii::$app->request->post("key");
  $query = Post::find()->joinWith('cate');
  $post = $query->orderBy(['post.id' => SORT_DESC])->asArray()->where(['post.status' => 1]);
  if($key){
    $post->andFilterWhere(['like', 'post.title', $key])
      ->orFilterWhere(['like', 'post.content', $key]);
  }
  $pages = new Pagination([
    'totalCount' => $post->count(),
    'defaultPageSize' => 10
  ]);
  $model = $post->offset($pages->offset)->limit($pages->limit)->all();
  return $this->render('index', [
    'model' => $model,
    'pages' => $pages,
  ]);
}

可以看到sql语句如下:

select count(*) from `post` left join `category` on `post`.`cate_id`=`category`.`id` where ((`post`.`status`=1) and (`post`.`title` like '%key%')) or (`post`.`content` like '%key%') order by `post`.`id` desc

select `post`.* from `post` left join `category` on `post`.`cate_id`=`category`.`id` where ((`post`.`status`=1) and (`post`.`title` like '%key%')) or (`post`.`content` like '%key%') order by `post`.`id` desc limit 10

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php中文本操作的类
Mar 17 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
php 团购折扣计算公式
Nov 24 PHP
解析php中的escape函数
Jun 29 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
php常用的url处理函数总结
Nov 19 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
May 17 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
利用PHP实现开心消消乐的算法示例
Oct 12 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 #PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 #PHP
教你在header中隐藏php的版本信息
Aug 10 #PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 #PHP
PHP身份证校验码计算方法
Aug 10 #PHP
PHP5.4起内置web服务器使用方法
Aug 09 #PHP
PHP Filter过滤器全面解析
Aug 09 #PHP
You might like
如何利用php+mysql保存和输出文件
2006/10/09 PHP
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
google 搜索框添加关键字实现代码
2010/04/24 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
js图片上传的封装代码
2017/08/01 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
Python实现备份文件实例
2014/09/16 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
企事业单位求职者的自我评价
2013/12/28 职场文书
小区消防演习方案
2014/02/21 职场文书
二手房购房协议书范本
2014/10/05 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
先进班组事迹材料
2014/12/25 职场文书
辅导员学期工作总结
2015/08/14 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers