У меня есть следующие отношения между моделями school
и associate
:
// School model
public function associates()
{
return $this->belongsToMany('Associate', 'school_associate', 'school_id', 'associate_id')
->withPivot('start_date', 'end_date');
}
// Associate model
public function schools()
{
return $this->belongsToMany('School', 'school_associate', 'associate_id', 'school_id')
->withPivot('start_date', 'end_date');
}
Мне нужно получить всех сотрудников одной школы, заказанных по start_date.
Это то, что я пробовал безуспешно (в этой попытке я ищу во всех школах):
dd(\App\Associate::with(['schools' => function ($q) {
$q->orderBy('pivot_start_date', 'desc');
}])->toSql());
И я получаю это sql (обратите внимание на предложение order by
):
select * from `associate`
Я пробовал чтобы отредактировать отношение следующим образом:
// Associate model
public function schools()
{
return $this->belongsToMany('School', 'school_associate', 'associate_id', 'school_id')
->withPivot('start_date', 'end_date')
->orderBy('pivot_start_date', 'desc'); // also tried without "pivot_"
}
И, согласно этому сообщению , я также пробовал:
// Associate model
public function schools()
{
return $this->belongsToMany('School', 'school_associate', 'associate_id', 'school_id')
->withPivot('start_date', 'end_date')
->orderBy('school_associate.start_date', 'desc');
}
Но я всегда получаю тот же запрос и результаты не заказываются.