$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

TP5多条件搜索,同时有必要条件的更多相关文章

  1. Node.js、express、mongodb 实现分页查询、条件搜索

    前言 在上一篇Node.js.express.mongodb 入门(基于easyui datagrid增删改查) 的基础上实现了分页查询.带条件搜索. 实现效果 1.列表第一页. 2.列表第二页 3. ...

  2. php多条件搜索

    PHP多条件查询 December : Tuesdayby 小屋 在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子.在本例中,我们要实现能够通过地理位置,物业类型,房屋 ...

  3. 对于唯一索引使用唯一条件搜索, InnoDB 只锁定找到的index record,不是它之前的区间

    | test100 | CREATE TABLE `test100` ( `sn` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增编号', `phoneNo` ...

  4. Lucene第二篇【抽取工具类、索引库优化、分词器、高亮、摘要、排序、多条件搜索】

    对Lucene代码优化 我们再次看回我们上一篇快速入门写过的代码,我来截取一些有代表性的: 以下代码在把数据填充到索引库,和从索引库查询数据的时候,都出现了.是重复代码! Directory dire ...

  5. 多条件搜索问题 -sql拼接与参数化查询

    来源:传智播客  免费开发视频. 问题:根据书名或出版社或作者查询书籍信息. using System; using System.Collections.Generic问题; using Syste ...

  6. 全字段多条件搜索(api接口)

    近期在做项目时遇到了一个全表全字段多条件搜索的需求,在平时搜索最常见的就是 字段+like +‘% 条件%’这种模式,但遇到多条件多字段时,这种就不适用了. 表字段已知,条件未知,条件数量未知,这种情 ...

  7. SQL Server通过条件搜索获取相关的存储过程等对象

    在SQL Server中,我们经常遇到一些需求,需要去搜索存储过程(Procedure).函数(Function)等对象是否包含某个对象或涉及某个对象,例如,我需要查找那些存储过程.函数是否调用了链接 ...

  8. 利用Lucene.net搜索引擎进行多条件搜索的做法

    利用Lucene.net搜索引擎进行多条件搜索的做法 2018年01月09日 ⁄ 搜索技术 ⁄ 共 613字 ⁄ 字号 小 中 大 ⁄ 评论关闭 利用Lucene.net搜索引擎进行多条件搜索的做法 ...

  9. CodeIgniter框架多条件搜索查询分页功能解决方案

    最近在用ci框架写功能的时候,需要用到分页功能,本来寻常的数据结果分页是比较简单的,但是这次写的功能是多条件搜索查询分页,就有点难度了,看官方手册下面评论好多人问, 正常的分页功能例子是这样的: $t ...

随机推荐

  1. Linux 文件、目录与磁盘格式

    文件属性      连接数  文件持有者 文件所属群组 文件容量 文件最后修改时间 文件名(就那个..) 第一栏其中文件属性有10,第一个属性代表这个文件是目录.文件或链接文件: [d]目录 [-]文 ...

  2. CentOS6与CentOS7的几点区别

    重新安装了一个CentOS7,顺便整理一下与自己之前用的CentOS6的区别 CentOS6以下简称c6  CentOS7以下简称c7 1.关于文件系统: c6 6.x使用EXT4,EXT4单个文件系 ...

  3. C#/VB.NET 将PDF转为OFD

    OFD,全称Open Fixed-layout Document ,是一种可存储.读取以及编辑的国家标准版式的电子文档格式,属于中国的一种自主文件格式,在安全性上有可靠保证.为突破国外技术在我们软硬件 ...

  4. Java Slf4j日志配置输出到文件中

    1.概述 新项目需要增加日志需求,所以网上找了下日志配置,需求是将日志保存到指定文件中.网上找了下文章,发现没有特别完整的文章,下面自己整理下. 1.Java日志概述 对于一个应用程序来说日志记录是必 ...

  5. 【springboot】全局异常处理

    转自: https://blog.csdn.net/cp026la/article/details/86495196 前言: 开发中异常的处理必不可少,常用的就是 throw 和 try catch, ...

  6. 【多线程】不懂什么是 Java 中的锁?看看这篇你就明白了!

    本文来源:Java建设者 原文地址:https://mp.weixin.qq.com/s/GU42BjM5jY2CEMVD_PAZBQ Java 锁分类 Java 中的锁有很多,可以按照不同的功能.种 ...

  7. HCNP Routing&Switching之OSPF LSA类型

    前文我们了解了OSPF中的虚连接相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15202348.html:今天我们来聊一聊OSPF数据包中LSA类型相 ...

  8. 主要DL Optimizer原理与Tensorflow相关API

    V(t) = y*V(t-1) + learning_rate*G(x) x(t) = x(t-1) - V(t) 参考:https://arxiv.org/pdf/1609.04747.pdf DL ...

  9. Learning ROS: Aboat URDF (Unified Robot Description Format)

    Building a Visual Robot Model with URDF from Scratch roscore &# With $(find urdf_tutorial), this ...

  10. Windows下Rancher复制Pod内文件到本地

    Rancher 未提供直接获取 Pod 内文件的工具(如果有请评论告知下,蟹蟹),但提供了 Rancher 的 CLI 客户端,通过 CLI 可以调用 k8s 的 CLI (kubectl) 命令来操 ...