laravel三个一对多的关系

时间:2018-02-17 14:56:06

标签: php laravel

我学习并且我想在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->特定季节的所有剧集?

1 个答案:

答案 0 :(得分:1)

您可以在season_id表格中添加字段series_espisodes。然后你可以像这样检索所有这些:

$allEpisodes = Episodes::where('season_id', $seasonID);

您也可以添加series_id字段,然后您可以像这样检索所有字段:

$allEpisodes = Episodes::where(['season_id'=> $seasonID, 'series_id => $seriesID]);

这将是最简单的方法,而不会在其背后隐藏任何复杂的逻辑。你在那里拥有一切。如果你正确创建它,你可以跳过seasons表,因为它只是一个数字。所以你可以有两个表,一个用于系列,一个用于剧集。简单而有效。