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版(5)
Oct 09 PHP
php学习之数据类型之间的转换代码
May 29 PHP
使用CodeIgniter的类库做图片上传
Jun 12 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
php生成数字字母的验证码图片
Jul 14 PHP
php处理复杂xml数据示例
Jul 11 PHP
php中使用websocket详解
Sep 23 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP Header失效的原因分析及解决方法
Nov 16 PHP
PHP创建对象的六种方式实例总结
Jun 27 PHP
解决php写入数据库乱码的问题
Sep 17 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错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
Python基础学习之常见的内建函数整理
2017/09/06 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
Oracle快照(snapshot)
2015/03/13 面试题
女方婚礼新郎答谢词
2014/01/11 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
Python中requests做接口测试的方法
2021/05/30 Python
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL