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 相关文章推荐
PHP简洁函数小结
Aug 12 PHP
php之Memcache学习笔记
Jun 17 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php文件系统处理方法小结
May 23 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 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实现分页的一个示例
2006/10/09 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
PHP调用其他文件中的类
2018/04/02 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
Three.js基础部分学习
2017/01/08 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
Python当中的array数组对象实例详解
2019/06/12 Python
python实现猜数字游戏
2020/03/25 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
中学教师师德承诺书
2014/05/23 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
python接口测试返回数据为字典取值方式
2022/02/12 Python
Python+Tkinter打造签名设计工具
2022/04/01 Python
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL
Spring中bean集合注入的方法详解
2022/07/07 Java/Android