laravel-admin 后台表格筛选设置默认的查询日期方法


Posted in PHP onOctober 03, 2019

一、框架版本说明

laravel 5.5

laravel-admin 1.7.5

二、表格日期筛选使用

后端调用代码

$grid->filter(function(Grid\Filter $filter){
$filter->like('title', '标题');
$filter->between('created_at', '发布日期')->date();
});

日期筛选条件对应的前端界面如下图:

laravel-admin 后台表格筛选设置默认的查询日期方法

三、需要设置默认查询日期的原因

对于大表查询如果没有默认的条件限制,查询数据库会非常的慢,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的日期查询条件就是这样提交到前端的,见下图:

laravel-admin 后台表格筛选设置默认的查询日期方法

以上就是问题的处理方法。

下面记录下,自己解决这个问题是怎么误入歧途的

开始时这样写的:

laravel-admin 后台表格筛选设置默认的查询日期方法

标题可以设置成功,默认的日期设置不了,为什么了?

官方文档、网上搜索了一堆,还是没有找到解决方法。我开始怀疑是不是源码的问题了,于是看源码这块是不是没有设置了,

laravel-admin 后台表格筛选设置默认的查询日期方法

看源码初始化的时候果然是没有设置。于是自己加了几行代码,见上图红框处。

刷新页面,果然可以看到设置的默认值了,别高兴太早,马上测试就发现问题。

重新选择日期查询,还是显示的是默认日期条件。。。。。。。

这是老大过来,看了下,很快就解决了,上面已经记录了。

自己出现的问题如下:

看标题可以设置默认值,就想当然的认为日期也是在那里设置的。

其实标题设置在第一次打开列表页面,数据库查询并没有标题的查询条件,只是显示到了页面上。

总结:

laraval-admin设置默认查询条件,在$grid->filter() 里面设置是没有用的(打开列表页面不会用到默认的查询条件)。

设置默认的查询条件需要先修改Request对象的请求参数

可以断定,laraval-admin 表格类别筛选,后端查询是参数是filter里面设置,参数值会取Request对象中对应的参数值。前端查询条件数据显示是根据URL上面的参数设置的。

以上这篇laravel-admin 后台表格筛选设置默认的查询日期方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
基于mysql的bbs设计(四)
Oct 09 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
fgetcvs在linux的问题
Jan 15 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
php版微信小店调用api示例代码
Nov 12 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 #PHP
laravel-admin 中列表筛选方法
Oct 03 #PHP
php实现映射操作实例详解
Oct 02 #PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 #PHP
php实现大文件断点续传下载实例代码
Oct 01 #PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 #PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 #PHP
You might like
PHP校验ISBN码的函数代码
2011/01/17 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
Python实现配置文件备份的方法
2015/07/30 Python
Python实现控制台中的进度条功能代码
2017/12/22 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
django中media媒体路径设置的步骤
2019/11/15 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
HTML5文档结构标签
2017/04/21 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP