我正在使用新的whereHas方法在Laravel 4.1中为急切加载的关系添加约束.
$broadcast = $broadcast->whereHas('season', function( $query ) use ( $parameterValues ){ $query->where('name', '2011-12' ); }); }
在这个例子中,我正在寻找足球/足球广播,其中的关系是广播belongsTo
季节
我想为团队(俱乐部)添加约束,其中关系是广播hasOne
家庭俱乐部和广播hasOne
离开俱乐部.我想要一个团队(利物浦)是主场或客场俱乐部的结果,所以我尝试使用orWhereHas
- L4.1中添加的一个特色
$broadcast = $broadcast->with('homeClub')->whereHas('homeClub', function( $query ) use ( $parameterValues ){ $query->where('abb', $parameterValues['club_abbs'] ); }); $broadcast = $broadcast->with('awayClub')->orWhereHas('awayClub', function( $query ) use ( $parameterValues ){ $query->where('abb', $parameterValues['club_abbs'] ); });
但这似乎取消了我在第一个例子中提到的对赛季的限制.就像通过链接orWhereHas一样,我的where
方法"忘记了"他们所约束的东西.
任何帮助,非常感谢 - 谢谢
乔恩.
我错误地使用了这个方法.我首先加载了两个关联,然后链接了whereHas
和orWhereHas
$broadcast = $broadcast->with('homeClub'); $broadcast = $broadcast->with('awayClub'); $broadcast = $broadcast->whereHas('homeClub', function( $query ) use ( $parameterValues ){ $query->where('abb', 'liverpool' ); })->orWhereHas('awayClub', function( $query ) use ( $parameterValues ){ $query->where('abb', 'liverpool' ); });