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定时自动生成静态HTML的实现代码
Jun 20 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
php实现singleton()单例模式实例
Nov 06 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
php实现微信公众号无限群发
Oct 11 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 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 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
javascript处理table表格的代码
2010/12/06 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
JS如何生成动态列表
2020/09/22 Javascript
Python 统计字数的思路详解
2018/05/08 Python
python绘制简单彩虹图
2018/11/19 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
python文件读写代码实例
2019/10/21 Python
python返回数组的索引实例
2019/11/28 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
消防应急演练方案
2014/02/12 职场文书
国庆节演讲稿
2014/05/27 职场文书
亚运会口号
2014/06/20 职场文书
大专毕业生求职信
2014/07/05 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
学校学期工作总结
2015/08/13 职场文书