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

Eloquent ORM, как связать таблицы многие ко многим?

Добрый день!

Есть модель Ability, метод
categories(){
return $this->belongsToMany(
'App\Category', 'ability_category', 'ability_id', 'category_id'
);}


Модель Category, метод
abilities(){
return $this->belongsToMany(
'App\Ability', 'ability_category', 'category_id', 'ability_id'
);}


Соответственно, помимо таблиц categories и abilities, есть объединяющая таблица ability_category с полями 'ability_id', 'category_id'.

При попытке "достучаться" до поля title (к примеру) таблицы categories через модель Ability ($ability->categories->title), выдаёт ошибку, что оно (поле) не существует.

Что я делаю не так или где я плохо понял мануал? Перечитал уже не один десяток раз)
Спасибо большое!
  • Вопрос задан
  • 298 просмотров
Подписаться 1 Простой 7 комментариев
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
Решения вопроса 1
@Novikofff
PHP Developer
Связь BelongsToMany Всегда возвращает коллекцию объектов. Поэтому чтобы выбрать поле, нужно обратиться к элементу этой коллекции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Ilbiondo Автор вопроса
Задача разрешилась. Ошибка была в основном в том, что я неправильно передавал массив, соответственно, он не выводился. Спасибо всем за участие, ваши советы мне во многом помогли!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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