浅谈laravel-admin的sortable和orderby使用问题

1. sortable 和 orderby 的概念

在 Laravel Admin 中,sortable 和 orderby 是用来对数据进行排序的两个概念。

sortable 是指对于列表页上的数据进行手工的拖拽排序,可以通过拖拽改变数据的显示顺序。

orderby 是指根据某个字段对数据进行排序,可以按照升序或降序的方式展示数据。

2. sortable 的使用

2.1 开启 sortable 功能

在 Laravel Admin 中,开启 sortable 功能很简单,只需要在对应的模型中使用 sortable trait 即可。

use Encore\Admin\Traits\Sortable;

class Article extends Model

{

use Sortable;

// ...

}

在模型中使用 Sortable trait 后,系统会自动为该模型添加一个 order 列,用于记录排序的顺序。

2.2 在列表页中使用 sortable

在列表页中使用 sortable 只需要把数据表格设置为可排序的即可。

首先,打开配置文件 config/admin.php,定位到 "extensions" 配置。

'extensions' => [

// ...

'sortable' => [

'enable' => true,

],

],

设置 'enable' 为 true,表示开启 sortable 功能。

然后,在列表页的字段中添加 sortable() 方法即可。

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

3. orderby 的使用

3.1 基本用法

在 Laravel Admin 中,可以通过 orderby 方法对列表页的数据进行排序。

例如,可以按照发布时间对文章进行倒序排序:

$grid->model()->orderBy('created_at', 'desc');

以上代码会将文章列表按照创建时间从新到旧进行排序。

3.2 多字段排序

如果需要对多个字段进行排序,只需在 orderby 方法中传入多个字段即可:

$grid->model()->orderBy('created_at', 'desc')->orderBy('view_count', 'desc');

以上代码会首先按照创建时间进行排序,然后再按照浏览量进行排序。

4. sortable 和 orderby 的区别

sortable 和 orderby 可以实现不同的排序效果。

sortable 是对列表页中的数据进行手工拖拽排序,适用于需要自定义排序顺序的情况。

orderby 是根据某个字段对数据进行排序,适用于按照某个字段的数值进行排序的情况。

5. 总结

在 laravel-admin 中,sortable 和 orderby 是两个非常有用的功能,可以帮助开发者对列表页的数据进行排序。

sortable 可以实现手工拖拽排序,orderby 可以按照某个字段进行排序。

通过合理使用这两个功能,可以使列表页的数据展示更加灵活和方便。

后端开发标签