@FlooDwm

Почему пишет нет такого метода при получении данных из таблицы через отношения?

Есть таблица КАТЕГОРИИ она связана с таблицей ПОДКАТЕГОРИИ ( 1 ко многим ), которая в свою очередь связана с таблицей ПОСТЫ (мног ко мног).
Вопрос: когда вызываю dd( $category->subcategory->post() ) говорит нет такого метода post() как мне связаться со всеми ПОСТАМИ данной КАТЕГОРИИ через ПОДКАТЕГОРИИ?

1) Связь многие ко многим через не работает так как подкатегорий у постов может быть много и поэтому ПОДКАТЕГОРИИ связаны с ПОСТАМИ многие ко многим, а для Связи многие ко многим через необходимо поле subcategory_id в ПОСТЕ но его там нет соотвественно))))
2) создать в ПОСТЕ колонку КАТЕГОРИЯ_ID и сразу искать все посты данной категории нельзя в силу некоторых обстоятельств :)
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
Palych_tw
@Palych_tw
Типа веб-разработчик
Потому что в $category->subcategory лежит Collection? Ну т.е. вы не можете получить post() от коллекции, сначала нужно из subcategory вытащить модель.

$subcategories = $category->subcategory;
foreach($subcategories as $subcat) {
    var_dump($subcat->post)
}


Ну или жадная загрузка
$category->subcategory()->with('post')->get();
И потом тоже циклом проходитесь и доставайте посты.

Ну и отношения, наверное, должны называться во множественном числе?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы