@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), выдаёт ошибку, что оно (поле) не существует.

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

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

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