Создаю есть обычная таблица категорий, для которых можно назначить родительскую категорию в стобце
parent_id
Все посты я добавляю в категорию нижнего уровня (то есть каждый пост имеет только одну категорию). При переходе на страницу данной категории (указанной к посту) я получаю список постов:
$posts = $category->posts();
return view('category.show')->with(compact('category', 'posts'));
В App\Models\Category метод posts() выглядит так:
public function posts()
{
return $this->hasManyThrough(Post::class, self::class, 'parent_id', 'category_id');
}
При использовании данного отношения, у меня на странице родительской категории выводятся все посты из дочерних категорий, но на странице любой дочерней категории, посты уже не выводятся, кроме того
count()
будет возвращать ноль. Если же в методе
posts()
parent_id
заменить на
id
, то в родительской категории выводиться ничего не будет, а в подкатегориях - будет. Можно ли как-то добавить в данное отношение еще и связь для корректног овывода постов на дочерних категориях?
Рассматривал
eloquent-has-many-deep, но мне кажется он делает примерно то же самое.