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');
}
→ Ссылка