查询多对多关系的laravel

时间:2015-03-25 19:59:40

标签: php laravel-5

我与模型竞赛和季节有多对多关系,并有一个名为competition_season的数据透视表。

来临吧> belongsToMany-> Competitions-> hasMany-> Teams-> hasMany->玩家

我想查询特定赛季球队中所有球员的数据。

类似

\App\Player::with('team.competition.season')->where('team.competition.season.id', 2);

然而,由于赛季是一个集合(比赛有很多赛季),此刻我永远无法像这样查询。

有人能指出我正确的方向,在特定赛季中正确选择球队中的所有球员吗?

1 个答案:

答案 0 :(得分:0)

首先,您需要在模型中添加关系hasManyTrough(有关详细信息,请参阅:has-many-through) 然后,你需要的只是" whereHas"

$players = \App\Player::with('season')->whereHas('season', function($q){
     $q->where('season.id', '=', 2);
})->get();