Только получение первого результата с множеством отношений - PullRequest
2 голосов
/ 13 апреля 2019

Это моя миграция:

Schema::create('seasons', function (Blueprint $table) {
     $table->bigIncrements('id');
     $table->bigInteger('show_id')->unsigned();
     $table->bigInteger('season');
     $table->timestamps();
});

Schema::table('seasons', function(Blueprint $table) {
    $table->foreign('show_id')->references('id')->on('shows');
});

Который выводит это например

# id, show_id, season, created_at, updated_at
'1', '1', '1', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'2', '1', '2', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'3', '1', '3', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'4', '1', '4', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'5', '1', '5', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'6', '1', '6', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'7', '1', '7', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'8', '1', '8', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'9', '1', '9', '2019-04-12 21:04:40', '2019-04-12 21:04:40'
'10', '1', '10', '2019-04-12 21:04:40', '2019-04-12 21:04:40'

Тогда в Show модели у меня есть

public function seasons()
{
    return $this->hasMany('App\Season', 'season');
}

А теперь в моем блейд-файле, когда я пытаюсь повторить все номера сезона, когда показываю конкретное шоу.

@foreach($show->seasons as $season)
    {{ $season->season }}
@endforeach

Это показывает только мне 1. Когда я dd переменная только первые сезоны в нем.

Как это может произойти, потому что я определил, что шоу имеет несколько сезонов. Если бы кто-то мог указать мне правильное направление, я был бы очень признателен.

1 Ответ

1 голос
/ 13 апреля 2019

Попробуйте это на вашей шоу-модели:

public function seasons()
{
    return $this->hasMany('App\Season');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...