Laravel Eloquent - 根据孩子的具体身份排序

时间:2014-08-18 01:31:15

标签: php laravel laravel-4 eloquent

我有3个模型:ScheduleShiftUserSchedule有多个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);

有什么想法吗?

0 个答案:

没有答案