You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Laravel Backpack列表设置默认排序列?全局排序scope不生效怎么办

问题原因

你写的Laravel全局作用域不生效,核心原因是Laravel Backpack 的CRUD列表默认会在查询末尾追加默认排序规则:如果你没有手动指定排序,Backpack默认会按模型主键id倒序排列,查询构造器中后追加的orderBy优先级高于你在全局作用域中提前定义的排序规则,因此全局作用域的排序被覆盖,不会生效。

正确设置Laravel Backpack列表默认排序的方法

方法1:直接在CRUD控制器中设置(最常用)

在对应CRUD控制器的setup()方法中直接调用Backpack提供的排序方法即可,优先级高于默认的主键排序:

public function setup()
{
    // 其他原有配置
    $this->crud->orderBy('descrizione', 'asc');
}

该方法不会影响模型在其他非Backpack场景下的查询,是官方推荐的默认排序设置方式。

方法2:保留全局作用域,禁用Backpack默认排序

如果你希望模型在所有场景(包括非Backpack的业务查询)都遵循该排序规则,可以保留原有的全局作用域,只需要在CRUD控制器中移除Backpack的默认排序规则即可:

public function setup()
{
    // 其他原有配置
    $this->crud->removeDefaultOrder();
}

此时全局作用域中定义的排序就会正常生效。

内容的提问来源于stack exchange,提问作者realtebo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:15:03