Laravel order by last post
Laravel проект. Есть Категории. У каждой категории есть пост (one-to-many). Мне требуется при загрузки категорий сортировать их по последне выставленном посту. Т.е. если в категории А только что выставили пост категория А должна быть самом верху. Как это реализовать. Модели Category and Post
Ответы (1 шт):
Автор решения: Yakoffka
→ Ссылка
Данная задача решается в два действия: Сначала прописываете новое отношение в модели Category:
// App/Category
public function latestPost(): hasOne
{
return $this->hasOne(\App\Post::class)->latest();
}
а затем в контроллере получить записи из таблицы categories с данным отношением и отсортировать результат:
// App/Http/Controllers/CategoryController
...
$categories = Category::with('latestPost')->get()->sortByDesc('latestPost');