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 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
php清除和销毁session的方法分析
Mar 19 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
PHP+Mysql无刷新问答评论系统(源码)
Dec 20 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
Yii2框架可逆加密简单实现方法
Aug 25 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 PHP
PHP 时间处理类Carbon
May 20 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
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
python爬虫基本知识
2018/03/05 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
什么是会话Bean
2015/05/14 面试题
颁奖晚会主持词
2014/03/25 职场文书
会计岗位说明书
2014/07/29 职场文书
毕业生实习证明
2014/09/19 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
财务经理岗位职责
2015/01/31 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers
python模板入门教程之flask Jinja
2022/04/11 Python