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设计模式中的工厂模式
Jun 12 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
如何设置mysql允许外网访问
Jun 04 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
PHP命名空间(Namespace)简明教程
Jun 11 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
PHP工厂模式简单实现方法示例
May 23 PHP
laravel-admin的图片删除实例
Sep 30 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
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
javascript实现前端分页功能
2020/11/26 Javascript
python常见的格式化输出小结
2016/12/15 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
国际会议邀请函范文
2014/01/16 职场文书
员工生日活动方案
2014/08/24 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js