挺不错,用熟了这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. os 模块常用方法

    os.remove()删除文件 os.rename()重命名文件 os.walk()生成目录树下的所有文件名 os.chdir()改变目录 os.mkdir/makedirs创建目录/多层目录 os. ...

  2. Intellij IDEA 从入门到上瘾 图文教程

    1. IDEA VS Eclipse 核心术语比较 ​ 由下图可见:两者最大的转变就在于工作空间概念的转变,并且在IDEA当中,Project和 Module是作为两个不同的概念,对项目结构是具有重大 ...

  3. 在应用中显示的图片很多情况不满足业务需求,我们需要动态根据图片的宽高进行缩放或加载中显示的缺省图片,这是我没就需要监听图片加载完成回调,来看看微信小程序怎么实现图片加载完成回调。

    <swiper-item> <image src="{{item.image}}" class="slide-image" mode=&quo ...

  4. nodejs express cheerio request爬虫

    const express = require('express') const cheerio = require('cheerio') const request = require(" ...

  5. snprintf用错了快10年…

    int snprintf(char *str, size_t size, const char *format, ...); 从用snprintf开始,size参数一直传的都是buff_size-1, ...

  6. shared_ptr 引用计数

    https://zh.cppreference.com/w/cpp/memory/shared_ptr 引用计数

  7. XSS平台-学习

    单点登录 - Telnet 404https://sso.telnet404.com/cas/login?service=https%3A%2F%2Fwww.seebug.org%2Faccounts ...

  8. [转]WebMercator与经纬度互转

    //经纬度转Web墨卡托 Vector3 lonLat2WebMercator(Vector3 lonLat) { Vector3 mercator; ; + lonLat.y)*)) / (); y ...

  9. pls_integer类型

    转: pls_integer类型 2011-08-22 16:49:06 heqiyu34 阅读数 13413更多 分类专栏: Oracle   今天在看一个触发器代码的时候碰到了一个pls_inte ...

  10. 浏览器显示 req Provisional headers are shown

    现象: 原因: 请求被插件什么的拦截导致. 修复: 换浏览器也可以. ​