我有3个模型:Schedule
,Shift
和User
。 Schedule
有多个Shift
,每个Shift
属于Schedule
且有一个User
。
为了获得我的日程安排(有班次和用户),我使用:
Schedule::with(['shifts', 'shifts.user'])->find($id);
我想由特定用户id
订购此时间表 - 即如果您正在查看时间表,我希望您的班次成为时间表中的第一个。
我在网上找到的就是如何使用Schedule
订购父级Eloquent模型(例如orderByRaw()
)
User::orderByRaw(DB::raw("FIELD(id, $user_id)"));
我尝试将其放在$query
声明的with
中,但这不起作用:
Schedule::with(
[
'shifts',
'shifts.user' => function($query) use ($user_id)
{
$query->orderByRaw(DB::raw("FIELD(id, $user_id)"));
}
])->find($id);
有什么想法吗?