我学习并且我想在laravel中创建类似于电影库的东西。我有三张桌子:
系列,series_seasons,series_espisodes
系列型号:
public function series_seasons()
{
return $this->hasMany('App\SeriesSeason','series_id');
}
季节模型:
public function series_episodes()
{
return $this->hasManyThrough('App\SeriesEpisode','App\SeriesSeason','series_id','season_id');
}
public function series()
{
return $this->belongsTo('App\Series','series_id');
}
(最初反而' hasManyThrough'我有' hasMany')
剧集模型:
public function series_season()
{
return $this->belongsTo('App\SeriesSeason','season_id');
}
所以我的问题是如何获得:series-> series_seasons->特定季节的所有剧集?
答案 0 :(得分:1)
您可以在season_id
表格中添加字段series_espisodes
。然后你可以像这样检索所有这些:
$allEpisodes = Episodes::where('season_id', $seasonID);
您也可以添加series_id
字段,然后您可以像这样检索所有字段:
$allEpisodes = Episodes::where(['season_id'=> $seasonID, 'series_id => $seriesID]);
这将是最简单的方法,而不会在其背后隐藏任何复杂的逻辑。你在那里拥有一切。如果你正确创建它,你可以跳过seasons
表,因为它只是一个数字。所以你可以有两个表,一个用于系列,一个用于剧集。简单而有效。