挺不错,用熟了这tp5封装的很方便.

类似上边一个查询多个操作,基本在model 一个方法搞定代码也不用很多,

首先要学会用scope  网上搜tp scope 有几个例子可以借鉴

model 内添加

 protected $searchField = [
'devid',
'devphone',
'bindphone'
];
protected $whereField = [
'endtime',
'isactived',
'issold',
'_date_range_'
];

上两个 是为了下边的方法  网页提交的参数传递到这个方法内滤掉 value 为空的,不为空的值进行查询, 如果条件都不为空,相当于where  xxx条件  and xxx条件 这个还需进一步测试,并不确定具体

  public function scopeTestWhere($query, $where)
{
if (count($this->whereField) > && count($where) > ) {
foreach ($where as $key => $value) {
if (in_array($key, $this->whereField) && $value!="") {
if($key=='endtime')
{
// where('score','<',80);
$query->where($key,'<', $value);
continue;
}
if($key=='_date_range_')
{
$datefrom=mb_substr($value,,);
$dateend=mb_substr($value,,);
$query->where('activedate','between time', [$datefrom,$dateend]);
continue;
}
$query->where($key, $value);
}
}
}
}

控制器内 把网页传过来的值 交给 testwhere 处理

$param = $request->param();
  $data  = $model->scope('search', $param['_keywords'] ?? false)
->scope('testwhere', $param)
->order($param['_order'] ?? 'id', $param['_by'] ?? 'desc')
->paginate($this->admin['per_page'], false, ['query'=>$request->get()]);

tp5 关键字模糊查询 日期查询 小于大于某范围等查询的优点的更多相关文章

  1. 模糊查询&&日期时间操作

    一.模糊查询 1.采用“_”.“%”通配符进行查询 select * from Students where stu_name like '张_';--一个‘_’表示一个字符 select * fro ...

  2. MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询

    MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...

  3. Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询

    Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...

  4. (5)MySQL的查询:模糊查询(通配符查询like)、限制符查询(limit)、排序查询(order by)、分组查询(group by)、(子查询)

    注意事项 指令语法的优先级: where > group by >order by > limit 例:select count(id) as cnt,age from tablen ...

  5. 使用sql语句查询日期在一定时间内的数据

    使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0   //查询当天日期在一周年 ...

  6. NSPredicate查询日期的问题

    查询日期的时候日期可以根据参数传进去,但不能在字符串中传参后在作为查询条件 简单比较以下两段代码 NSDate* date1=[NSDate date]; NSDate* date2=date1; r ...

  7. SQL中Between查询日期时需要注意的地方

    SQL中Between查询日期时需要注意的地方   某个表某个字段是Datetime型 以"YYYY-MM-DD 00:00:00" 存放 (1).例如数据 2009-01-22 ...

  8. SQL查询日期:

    SQL查询日期: 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from ...

  9. LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))

    #6279. 数列分块入门 3 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 3   题目描述 给 ...

随机推荐

  1. CF1214题解

    D 因为可以用贡献2把起点终点堵掉,所以答案为0/1/2 0/2简单 1:方格可以理解为分层图,考虑每个能到达终点,起点能到达其的点,标记一下,对角线如果仅存在1则为必经之路 E \(d_i\le n ...

  2. webpack-merge使用说明

    webpack-merge   配置分离 随着我们业务逻辑的增多,图片.字体.css.ES6以及CSS预处理器和后处理器逐渐的加入到我们的项目中来,进而导致配置文件的增多,使得配置文件书写起来比较繁琐 ...

  3. Hadoop NameNode判断 DataNode 节点宕机的时间

    .namenode 如何判断datanode节点是否宕机? 先决条件: datanode每隔一段时间像namenode汇报,汇报的信息有两点 ()自身datanode的状态信息: ()自身datano ...

  4. python3之线程(一)

    线程的概念 现在的操作系统几乎都支持运行多个任务,而在操作系统内部,一个任务往往代表的执行的某一个程序,也就是运行中的程序,运行的程序是一个动态的概念,也就是所说的进程,而在进程内部,往往有许多顺序执 ...

  5. [WEB安全]SSRF中URL的伪协议

    当我们发现SSRF漏洞后,首先要做的事情就是测试所有可用的URL伪协议 0x01 类型 file:/// dict:// sftp:// ldap:// tftp:// gopher:// file: ...

  6. rapidxml学习

    参考: 官网http://rapidxml.sourceforge.net/ https://blog.csdn.net/wqvbjhc/article/details/7662931 http:// ...

  7. kill命令的简单实现

    kill命令的简单实现 目标:简单实现kill命令 功能: 向进程发送信号 列出信号名字 参数: -l 列出信号名字 -s (s=1.2.3.....)发送的信号代号 环境 ubuntu 14.04 ...

  8. postgresql 增量备份

    介绍: barman是postgresql备份还原的管理工具. 本文环境: 系统: centos6.6 PostgreSQL 9.3.9 barman-1.4.1-1.rhel6.noarch.rpm ...

  9. RPC协议、http协议、https协议的区别

    什么是RPC协议?RPC是一种远程过程调用的协议,使用这种协议向另一台计算机上的程序请求服务,不需要了解底层网络技术的协议. 在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器. HT ...

  10. ionic4.x EventEmitter3的使用

    安装: npm install --save eventemitter3 创建event.service import { Injectable } from '@angular/core'; // ...