@den-masonov

Связь «ко многим через». Как составить запрос чтобы получить нужные данные?

Всем привет!)

Проблема у меня такая: есть три таблицы:

class Area extends Model
{
    public function institutions()
    {
        return $this->hasManyThrough('App\Institution', 'App\City');
    }
}


class City extends Model
{
	public function institutions()
    {
        return $this->hasMany('App\Institution');
    }
}


class Institution extends Model
{

	public function area() {
		return $this->belongsTo('App\Area');
	}

}


Мне нужно получить данные из institutions
Не знаю как составить запрос, прочел все что удалось погуглить, но что-то упускаю.

$institutions = Area::find(1)->cities->institutions не работает
$institutions = Area::find(1)->cities()->where('id', '=', 1)->institutions так тоже пробовал

Пробовал и так:
$inst = Area::with('cities')->get();

        foreach ($cities as $city) {
          $city->institutions->name;
        }


Выдает ошибку:
RelationNotFoundException in RelationNotFoundException.php line 20:
Call to undefined relationship [cities] on model [App\Area].


Я старался понять о чем мне сообщают, но с моим знанием английского и знанием Laravel к особому успеху я не пришел.

В общем, мне нужна коллекция учреждений.
  • Вопрос задан
  • 422 просмотра
Решения вопроса 1
zvermafia
@zvermafia
WebDev
Похоже вы не определили метод для связи cities() в моделе App\Area
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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