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 相关文章推荐
通过ODBC连接的SQL SERVER实例
Oct 09 PHP
mysql5详细安装教程
Jan 15 PHP
php自动适应范围的分页代码
Aug 05 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
Yii调试SQL的常用方法
Jul 09 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
php 多文件上传的实现实例
Oct 23 PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 PHP
解决Laravel5.5下的toArray问题
Oct 15 PHP
浅谈php常用的7大框架的优缺点
Jul 20 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 生成随机验证码图片代码
2010/02/08 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
php Session存储到Redis的方法
2013/11/04 PHP
php pdo操作数据库示例
2017/03/10 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
PHP实现八皇后算法
2019/05/06 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
js实现无缝轮播图效果
2020/03/09 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
python求列表交集的方法汇总
2014/11/10 Python
Python中装饰器学习总结
2018/02/10 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
python用什么编辑器进行项目开发
2020/06/17 Python
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
运动会入场解说词
2014/02/07 职场文书
《值日生》教学反思
2014/02/17 职场文书
高中军训感言600字
2014/03/11 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
Python实现制作销售数据可视化看板详解
2021/11/27 Python
JavaScript实例 ODO List分析
2022/01/22 Javascript