Laravel 6. Как выводить одновременно категории и его родителя?
Как выводить одновременно категории и его родителя из таблиц? В моделе:
public function bookCategory()
{
return $this->belongsTo(BookCategory::class,'book_category_id','id')
//->leftJoin('books_categories','books_categories.id','=','books_categories.parent_id') -не работает
->select(['id','parent_id','title']);
}
Сам запрос на контроллере:
$posts = BookPost::with('user', 'bookCategory')->latest()->get();
Ответы (1 шт):
Автор решения: Yakoffka
→ Ссылка
Попытаюсь ответить. Насколько я понял, Вам необходимо получить цепочку родителей для категории.
Если вложенность подкатегорий неограничена, то Вам нужны рекурсивные отношения. С их помощью можно получить дочерние подкатегории.
Вот здесь хорошая статья.
Если вложенность категорий ограничена (всего два уровня вложенности Category->Subcategory), то можно обойтись отношением parent() в модели:
/**
* @return BelongsTo
*/
public function parent(): belongsTo
{
return $this->belongsTo(__CLASS__, 'parent_id');
}