从关系 laravel 的三个模型中获取数据
Get data from three models with relationship laravel
我有三个型号:
意甲 ($id)
public function saisons()
{
return $this->hasMany(Season::class);
}
public function episodes()
{
return $this->hasManyThrough(Episode::class, Season::class);
}
赛季 ($serie_id)
public function serie()
{
return $this->belongsTo(Serie::class);
}
public function episodes()
{
return $this->hasMany(Episode::class);
}
集 ($season_id)
public function season()
{
return $this->belongsTo(Season::class);
}
public function serie()
{
return $this->BelongsToThrough(Serie::class, Season::class);
}
我想显示一个系列中的特定季节以及相关的剧集
我的观点
<h1 class="title">{{$serie->seasons->number}}</h1>
@foreach ($serie->seasons->episodes as $episode)
<div class="row">
<div class="columns">
<div class="col">
{{$episode->number}}
<a href="{{route('episodes.show', $episode->id)}}">{{$episode->name}}</a>
@if(isset($episode->programmation->date))
{{$episode->programmation->date}}
@endif
@if (($episode->season_finale) == '0')
Non
@elseif (($episode->season_finale) == '1')
Oui
@endif
@foreach ($episode->chaines as $chaine)
{{$chaine->name}}
@endforeach
</div>
</div>
</div>
@endforeach
路线
Route::get('/serie/{serie}/saison/{season}', 'Front\SaisonController@show')->name('saison.show');
对于我的 url,我选择显示节目的编号而不是 id,我认为这就是问题所在。
我怎样才能以正确的方式做到这一点?
我觉得这个方法可以帮到你。
$serie = Serie::where('id',$id)->with('seasons'=>function($query) use ($season_id) {
$query->where('season_id',$season_id)->with('episodes')->get();
})->get();
好的,有人帮我找到正确的答案:
$serie = Serie::findOrFail($serie);
$season = Season::where('serie_id', $serie->id)->where('season.number', $season)->first();
我有三个型号:
意甲 ($id)
public function saisons()
{
return $this->hasMany(Season::class);
}
public function episodes()
{
return $this->hasManyThrough(Episode::class, Season::class);
}
赛季 ($serie_id)
public function serie()
{
return $this->belongsTo(Serie::class);
}
public function episodes()
{
return $this->hasMany(Episode::class);
}
集 ($season_id)
public function season()
{
return $this->belongsTo(Season::class);
}
public function serie()
{
return $this->BelongsToThrough(Serie::class, Season::class);
}
我想显示一个系列中的特定季节以及相关的剧集
我的观点
<h1 class="title">{{$serie->seasons->number}}</h1>
@foreach ($serie->seasons->episodes as $episode)
<div class="row">
<div class="columns">
<div class="col">
{{$episode->number}}
<a href="{{route('episodes.show', $episode->id)}}">{{$episode->name}}</a>
@if(isset($episode->programmation->date))
{{$episode->programmation->date}}
@endif
@if (($episode->season_finale) == '0')
Non
@elseif (($episode->season_finale) == '1')
Oui
@endif
@foreach ($episode->chaines as $chaine)
{{$chaine->name}}
@endforeach
</div>
</div>
</div>
@endforeach
路线
Route::get('/serie/{serie}/saison/{season}', 'Front\SaisonController@show')->name('saison.show');
对于我的 url,我选择显示节目的编号而不是 id,我认为这就是问题所在。
我怎样才能以正确的方式做到这一点?
我觉得这个方法可以帮到你。
$serie = Serie::where('id',$id)->with('seasons'=>function($query) use ($season_id) {
$query->where('season_id',$season_id)->with('episodes')->get();
})->get();
好的,有人帮我找到正确的答案:
$serie = Serie::findOrFail($serie);
$season = Season::where('serie_id', $serie->id)->where('season.number', $season)->first();