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 可以按照某个字段进行排序。
通过合理使用这两个功能,可以使列表页的数据展示更加灵活和方便。