Задать вопрос
@FlooDwm

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

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

1) Связь многие ко многим через не работает так как подкатегорий у постов может быть много и поэтому ПОДКАТЕГОРИИ связаны с ПОСТАМИ многие ко многим, а для Связи многие ко многим через необходимо поле subcategory_id в ПОСТЕ но его там нет соотвественно))))
2) создать в ПОСТЕ колонку КАТЕГОРИЯ_ID и сразу искать все посты данной категории нельзя в силу некоторых обстоятельств :)
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    PHP-фреймворк Laravel
    2 месяца
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
Решения вопроса 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();
И потом тоже циклом проходитесь и доставайте посты.

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

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

Похожие вопросы