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中文本数据翻页(留言本翻页)
Oct 09 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
php防止SQL注入详解及防范
Nov 12 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
php微信支付之APP支付方法
Mar 04 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 PHP
PHP生成(支持多模板)二维码海报代码
Apr 30 PHP
tp5.1框架数据库子查询操作实例分析
May 26 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
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
JavaScript 基本概念
2015/01/20 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
Python itertools模块详解
2015/05/09 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Django 框架模型操作入门教程
2019/11/05 Python
导致python中import错误的原因是什么
2020/07/01 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
北京颐和园导游词
2015/01/30 职场文书
行政诉讼答辩状
2015/05/21 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL