$model = $this->model;
// 查询是否有搜索参数
$search = input('?get.search') ? trim(input('get.search')) : false; $list = $model;
if($search) {
// 查询相关标签
$searchTags = model('tag')
->alias('a')
->join('tagmap b', 'b.tagid = a.id')
->where('a.name', 'like', '%' . $search . '%')
->column('b.tid');
$tagsTeacherIdsArr = preg_grep('/\d+/' ,$searchTags);
$tagsTeacherIds = join(',' ,array_unique($tagsTeacherIdsArr));
        // 闭包搜索 内容
$list = $list->where(function ($query) use ($search, $tagsTeacherIds) {
$query->whereOr('id','in',$tagsTeacherIds)
->whereOr('name', 'like', '%' . $search . '%')
->whereOr('desc', 'like', '%' . $search . '%');
});
}
      // 必要条件
$list = $list->where([
'ispublic' => 1,
'isdel' => 0
])
->order('sort','desc')
->paginate(15,false,[
'query' => request()->param()
]);

前言:where里面的条件是 && 的关系,whereOr里面的条件是 | | 的关系,

如果不用闭包,直接在外面whereOr的话会查询数据库所有的,条件就不起作用了

想要得到的效果:

    1.筛选出is_deleted字段为0(未删除)的公告

    2.筛选出全部状态为已发送(status=1)的公告

    3.状态为草稿的公告仅自己可见

代码(红色框起来的部分):

等价于select * from table(表名) WHERE ( `admin_id` = 当前用户的id   OR `status` = '1' ) and `is_deleted` = '0 ;      

注: 1.$params = ['is_deleted'=>0]     where()可以写多个条件,逗号分隔,如where(['name'=>'坤坤','is_deleted'=>0])

  2.order是排序方式

  3.field是要查找的字段

引用: https://www.cnblogs.com/youantianqin/p/11087098.html

最新文章

  1. Arc Engine下数据的加载处理
  2. Android bitmap高效显示和优化
  3. make xconfig时,出现“Unable to find any QT installation"错误
  4. HTTP协议基础与实验
  5. Eclipse导入JavaWeb项目报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
  6. Java乔晓松-android的四大组件之一Service(服务的绑定)
  7. txt文件保存问题
  8. stl总结精简版
  9. mysql 查询今天,昨天,上个月sql语句 注解
  10. mt6577驱动开发 笔记版
  11. Maven deploy部署jar包到远程私仓
  12. 使用css实现无滚动条滚动+使用插件自定义滚动条样式
  13. Sublime Text3 安装 markdownediting插件 报错 Error loading syntax file "Packages/Markdown/Markdown.tmLanguage":
  14. RPM软件管理工具
  15. MVC应用程序请求密码的功能(一)
  16. jsp页面中日期的格式化
  17. get请求中的url encode问题
  18. [转]wget 下载整个网站,或者特定目录
  19. Word转PDF非常好用的软件——pdfFactory Pro
  20. GROUPING SETS与GROUP_ID

热门文章

  1. Goland 这些技巧,学会开发效率翻倍!
  2. JavaWeb——CSS总结
  3. Django静态文件配置 request对象 Django操作MySQL
  4. 【AE】多表的联合查询
  5. jquery validate 验证插件 解决多个相同的Name 只验证第一个的方案
  6. linux &和&&,|和||
  7. Mybatis简单应用
  8. jQuery中的样式(七):addClass()、removeClass()、toggleClass()、hasClass()、css()、width()、height()等
  9. Linux centos 安装 mysql 5.7
  10. 自研 Pulsar Starter:winfun-pulsar-spring-boot-starter