@yellow_pus

Почему не работает связь «один ко многим»?

У меня есть таблицы: director и film. У film есть внешний ключ director_id, то есть, один режиссер может снять несколько фильмов. Так что, исходя из документации, я написал в модели Director:
public function films(){
        return $this->hasMany(Film::class,'director_id','id');
    }

В контроллере прокидываю во вьюху эту модель таким образом:
public function index(){
        $directors = Director::all();
        return view('one-to-many',['directors' => $directors]);
    }

Следовательно, я могу обратиться к таблице Film, через Director таким образом Film: <?php echo $director->films['title']?>, что я и делаю, но у меня вылезает ошибка Undefined index: title несмотря на то, что в таблице Film есть столбец title. Что я делаю неправильно?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 2
pLavrenov
@pLavrenov
Разработка сайтов
HasMany указывает на то что тут $director->films будет коллекция, а ты обращаешься как к HasOne.
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
Films: 
@foreach($director->films as $film)
  {{ $film->title }} <br>
@endforeach
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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