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

介绍laravel-admin后台

laravel-admin是一个可以快速构建管理后台的开源框架,基于Laravel(一个大受欢迎的PHP框架)开发,提供了许多常见业务场景中所需要的功能,例如表格,表单,图表等,开发者可以通过样式定制和插件广场来完整实现自己的需求。

1. 安装laravel-admin

可以通过如下命令安装laravel-admin:

composer require encore/laravel-admin

之后会生成一个`config/admin.php`的配置文件,需要在`.env`文件中增加`APP_KEY`,如下所示:

php artisan key:generate

在`config/app.php`文件中,需要添加laravel-admin的服务提供者,和`aliases`:

'providers' => [

// ...

Encore\Admin\AdminServiceProvider::class,

// ...

],

'aliases' => [

//...

'Admin' => Encore\Admin\Facades\Admin::class,

//...

],

2. 创建一个控制器

使用`php artisan make:controller`创建一个控制器,例如`UserController`,增加一个方法`index`:

namespace App\Admin\Controllers;

use Encore\Admin\Controllers\AdminController;

use Encore\Admin\Layout\Content;

class UserController extends AdminController

{

public function index(Content $content)

{

return $content

->header('User')

->description('User')

->body('hello world');

}

}

3. 注册路由

在`app\Admin`文件夹中创建一个名为`routes.php`的文件,增加如下路由代码:

Route::get('user', 'UserController@index');

使用`php artisan serve`启动laravel服务后,在浏览器中输入`http://127.0.0.1:8000/admin/user`即可看到`hello world`。

4. 集成datatables

laravel-admin使用了PHPDatatables,提供了常见的功能,例如排序,分页,自定义字段等。

使用以下命令安装:

composer require yajra/laravel-datatables-oracle

在控制器中,使用如下代码集成datatables:

public function index(Content $content)

{

return $content

->header('User')

->description('User')

->body($this->grid());

}

protected function grid()

{

$grid = new Grid(new User);

$grid->column('id', 'ID')->sortable();

$grid->column('name', 'Name');

$grid->column('email', 'Email');

$grid->column('created_at', 'Created At');

$grid->column('updated_at', 'Updated At');

return $grid;

}

使用`$grid`,我们可以更方便地自定义显示的字段和表格中的数据。

5. 为表格添加筛选器

laravel-admin提供了许多默认的筛选器,包括`equal`,`notEqual`,`like`,`in`等,使用如下方法添加筛选器:

$grid->filter(function ($filter) {

// 设置created_at字段的范围查询

$filter->between('created_at', 'Created Time')->datetime();

});

6. 筛选器中设置默认查询日期

默认情况下,筛选器将显示当前月的所有记录,如果需要更改默认日期,可以通过设置`presets`选项来实现。

以下代码将默认值设置为30天前到当前时间:

$filter->between('created_at', 'Created Time')->datetime()->default([

'start' => Carbon::now()->subDays(30)->startOfDay(),

'end' => Carbon::now()->endOfDay(),

]);

以上就是laravel-admin后台表格筛选设置默认的查询日期方法的介绍,希望对大家有所帮助。

后端开发标签