laravel-admin中如何实现后台表格筛选设置默认查询日期的方法-创新互联

这篇文章主要介绍laravel-admin中如何实现后台表格筛选设置默认查询日期的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都创新互联专注于企业成都营销网站建设、网站重做改版、桃源网站定制设计、自适应品牌网站建设、H5响应式网站商城建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为桃源等各大城市提供网站开发制作服务。

一、框架版本说明

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中如何实现后台表格筛选设置默认查询日期的方法

看源码初始化的时候果然是没有设置。于是自己加了几行代码,见上图红框处。

刷新页面,果然可以看到设置的默认值了,别高兴太早,马上测试就发现问题。

重新选择日期查询,还是显示的是默认日期条件。。。。。。。

这是老大过来,看了下,很快就解决了,上面已经记录了。

自己出现的问题如下:

看标题可以设置默认值,就想当然的认为日期也是在那里设置的。

其实标题设置在第一次打开列表页面,数据库查询并没有标题的查询条件,只是显示到了页面上。

以上是“laravel-admin中如何实现后台表格筛选设置默认查询日期的方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网页标题:laravel-admin中如何实现后台表格筛选设置默认查询日期的方法-创新互联
标题链接:http://pwwzsj.com/article/docdih.html