laravel nova 的侧边栏元素排序
2020-06-19 tech laravel 2 mins 763 字
自 nova 2.10开始,nova增加了一个权重字段,用于侧边栏排序使用:
/**
* The side nav menu order.
*
* @var int
*/
public static $priority = 2;
配置后在 NovaServiceProvider
中声明使用自定义排序即可:
public function boot()
{
Nova::sortResourcesBy(function ($resource) {
return $resource::$priority ?? 9999;
});
}
相关的代码参考 nova 的测试也可以找到:
# ./nova/tests/Feature/NovaTest.php
public function test_can_specify_user_sortable_closure_for_sorting()
{
$callback = function ($resource) {
return $resource::$priority;
};
Nova::sortResourcesBy($callback);
$this->assertEquals($callback, Nova::$sortCallback);
Nova::sortResourcesBy(function ($resource) {
return $resource::label();
});
}