laravel-admin 后台表格筛选设置默认的查询日期方法
一、框架版本说明
laravel 5.5
laravel-admin 1.7.5
二、表格日期筛选使用
后端调用代码
$grid- filter(function(GridFilter $filter){
$filter- like('title', '标题');
$filter- between('created_at', '发布日期')- date();
});
日期筛选条件对应的前端界面如下图:
三、需要设置默认查询日期的原因
对于大表查询如果没有默认的条件限制,查询数据库会非常的慢,count(*) 总数都要好几秒
为了解决上面的问题,所以需要加默认的条件限制
这个问题是老大解决的,下面先说明处理的方法,再记录下自己走的弯路
四、处理方法
在方法开始出加上代码:
if(empty(request()- created_at)){
request()- offsetSet('created_at',Helper::lastConditionDate('month'));
}
为什么要这样写了,就是给Request对象设置请求参数created_at,就这么简单。 下面是一些简要的说明
时间查询条件字段created_at
Helper::lastConditionDate(‘month’) 这个行代码得到是一个时间起止的数据:
Array
(
[start] = 2019-07-09
[end] = 2019-08-08
)
设置这个数据,是因为laraval-admin的日期查询条件就是这样提交到前端的,见下图:
以上就是问题的处理方法。
下面记录下,自己解决这个问题是怎么误入歧途的
开始时这样写的:
标题可以设置成功,默认的日期设置不了,为什么了?
官方文档、网上搜索了一堆,还是没有找到解决方法。我开始怀疑是不是源码的问题了,于是看源码这块是不是没有设置了,
看源码初始化的时候果然是没有设置。于是自己加了几行代码,见上图红框处。
刷新页面,果然可以看到设置的默认值了,别高兴太早,马上测试就发现问题。
重新选择日期查询,还是显示的是默认日期条件。。。。。。。
这是老大过来,看了下,很快就解决了,上面已经记录了。
自己出现的问题如下:
看标题可以设置默认值,就想当然的认为日期也是在那里设置的。
其实标题设置在第一次打开列表页面,数据库查询并没有标题的查询条件,只是显示到了页面上。
总结:
laraval-admin设置默认查询条件,在$grid- filter() 里面设置是没有用的(打开列表页面不会用到默认的查询条件)。
设置默认的查询条件需要先修改Request对象的请求参数
可以断定,laraval-admin 表格类别筛选,后端查询是参数是filter里面设置,参数值会取Request对象中对应的参数值。前端查询条件数据显示是根据URL上面的参数设置的。
以上这篇laravel-admin 后台表格筛选设置默认的查询日期方法就是小编分享给大家的全部内容了,希望能给大家一个参考。
- 部署Zipkin分布式性能追踪日志系统的操作记录
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(4)显示记录
- Android 2.x中使用actionbar - Actionbarsherlock (2)
- python读txt和xml
- 让Jexus支持高并发请求的优化技巧
- 数据压缩算法LZO (C#)
- Html之初体验
- 基于Wolfpack开发业务监控系统
- Android 2.x中使用actionbar - Actionbarsherlock
- Python-操作Memcache、Redis、RabbitMQ、
- 推荐[搜索引擎架构]的几篇文章
- 中小型商城系统中的分类/产品属性/扩展属性的数据库设计
- Linux下FTP虚拟账号环境部署总结
- Replace方法与正则表达式的性能比较
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- cp命令
- java基本数据类型及相互间的转换(转)
- 【java设计模式系列】1. 工厂方法模式(Factory Method)
- 为什么 Java 中 1000==1000 为 false ?
- 【java设计模式系列】2. 单例模式(Singleton)
- 跨域请求的解决方案
- 【排序】快速排序
- 因为BitMap,白白搭进去8台服务器...
- java所有的“锁”大总结,以后面试再也不怕遇到锁了
- 【Java8新特性】03 Stream流式数据处理
- 慎用JSON.stringify
- 【Java8新特性】04 详解Lambda表达式中Predicate Function Consumer Supplier函数式接口
- ubuntu下的进程控制系统————Supervisor
- 如何高效、快速、准确地完成ML任务,这4个AutoML库了解一下
- [译]如何用 Typescript 写一个完整的 Vue 应用程序