У меня есть проект Laravel, в котором есть модели User и Order.
Пользовательская модель имеет отношение к сортировке модели заказа следующим образом:
public function last_order() {
return $this->hasOne('Order', 'user_id')->orderBy('created_at', 'desc')->limit(1);
}
Возвращает последний заказ для определенного пользователя. Работает нормально.
Мне нужно также вернуть отсортированный массив пользователей из нового порядка. Я попытался сделать это с Eloquent на уровне хранилища, например:
User::has('last_order')->with('last_order')->orderBy('last_order.created_at', 'desc')->get();
Это не работает. Я также попробовал это с методом sortBy, тот же результат. Это возвращает меня, что таблица last_order не существует.
Не могли бы вы посоветовать мне, как легко отсортировать подобные вещи с помощью Eloquent (не на уровне службы и без необработанного выбора)?
Спасибо.