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文件
Jan 04 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
php实例分享之mysql数据备份
May 19 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
php数组键名技巧小结
Feb 17 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
yii框架搜索分页modle写法
Dec 19 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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&MYSQL留言板源码
2020/07/19 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
详解Python的Lambda函数与排序
2016/10/25 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
优秀学生评语大全
2014/04/25 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
爱心募捐感谢信
2015/01/22 职场文书
公司管理建议书
2015/09/14 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
Golang Web 框架Iris安装部署
2022/08/14 Python