Laravel 有说服力的排序相关数据

Laravel 有说服力的排序相关数据,laravel,eloquent,Laravel,Eloquent,我正在使用Eloquent存储库按ID获取“菜单”,并返回所有相关的“菜单项”。这工作正常,但我遇到了一个问题,按“菜单项”的一个字段重新排序。因此,我目前正在做: $menu = $this->menuRepo->getById($id, 'menuitems'); 在雄辩的回复中调用此函数: public function getById($id, $with = false) { if ($with) { return $this->mo

我正在使用Eloquent存储库按ID获取“菜单”,并返回所有相关的“菜单项”。这工作正常,但我遇到了一个问题,按“菜单项”的一个字段重新排序。因此,我目前正在做:

$menu = $this->menuRepo->getById($id, 'menuitems');
在雄辩的回复中调用此函数:

public function getById($id, $with = false)
{
    if ($with)
    {
        return $this->model->withTrashed()->with($with)->findOrFail($id);
    }

    return $this->model->withTrashed()->findOrFail($id);
}
该功能在整个系统中都在使用,因此理想情况下我希望保持原样,或者需要对其进行更改,以使其不会在所有当前使用中中断。但即便如此,当我试图添加

->orderBy('name')

在其中,它适用于“菜单”而不是“菜单项”。

您的$with需要重写,以便它使用关系约束:

...->with($with => function($query){
   $query->orderBy('name','asc');
})->...

谢谢的副本,我确实有一个很好的搜索第一,但这个问题似乎已经滑落网。