laravel-admin 后台表格筛选设置默认的查询日期方法

网络编程 2025-03-13 22:23www.168986.cn编程入门

一、框架版本说明

此篇文章适用于以下版本:

1. laravel 5.5

2. laravel-admin 1.7.5

```php

$grid->filter(function(Grid\Filter $filter){

$filter->like('title', '标题');

$filter->between('created_at', '发布日期')->date();

});

```

日期筛选条件会在前端界面上生成对应的筛选组件。

三、需要设置默认查询日期的原因

在进行大量数据的查询时,如果没有默认的查询条件限制,会严重影响数据库查询效率,甚至可能需要数秒才能获取结果。我们需要设置默认的查询条件来提高查询效率。

四、处理方法

我们可以在查询方法开始处添加代码来设置默认的查询日期:

```php

if(empty(request()->input('created_at'))) {

request()->offsetSet('created_at', Helper::lastConditionDate('month'));

}

```

这段代码的主要目的是给Request对象设置请求参数`created_at`。`Helper::lastConditionDate('month')`这个方法会返回一个包含起止时间的数据,例如:`['start' => '2019-07-09', 'end' => '2019-08-08']`。这样,我们就可以在前端页面看到默认的查询日期范围。

五、问题的曲折解决过程

一开始,作者试图在标题设置成功的地方设置默认日期,但发现无法生效。经过深入研究,作者发现laravel-admin的筛选条件是在URL的查询参数中设置的,而不是在filter方法中设置的。要想设置默认的查询条件,必须先修改Request对象的请求参数。这是老大解决的,作者记录下了这个过程,并分享了自己的弯路和经验。作者曾试图在源码中直接添加默认值的设置,但效果不佳。作者明白了laraval-admin的查询机制,成功解决了问题。

上一篇:JavaScript实现反转字符串的方法详解 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by