有谁知道这个新功能是否可以在多个关系上执行?
例如,我有一个查询,我不仅要过滤俱乐部名称(相关问题),还要过滤区域名称.
在这个例子中,我想查询结果,其中俱乐部(俱乐部关系)的名字是阿森纳,而该地区是澳大利亚(领土关系)
$ret->with('territory')->with('homeClub')->with('awayClub');
$ret->whereHas('territory',function( $query ){
$query->where('region','Australia');
})->whereHas('homeClub', function ( $query ) {
$query->where('name', 'Arsenal' );
})->orWhereHas('awayClub', function ( $query ) {
$query->where('name', 'Arsenal' );
});
Run Code Online (Sandbox Code Playgroud)
执行此查询时 - 结果不会仅限whereHas于俱乐部区域.
可以在哪里链接过滤以前关系的结果在哪里?有没有建议?
谢谢
乔恩
在我正在构建的雄辩查询中,我has使用Laravel 4.1 whereHas和orWhereHas方法对关系进行约束.
在示例足球应用程序中,我希望对homeClub和awayClub关系设置一个约束,以便我可以选择结果集将选择homeClub = Arsenal OR awayClub = Arsenal的位置.
这个问题已经从早期的问题演变而来似乎在使用该orWhereHas方法时 - 生成的sql不对or约束进行分组.
查询(放置约束的相关摘录):
$ret
->where( function( $subquery ) use ( $ret ){
$ret->whereHas('homeClub', function ( $query ){
$query->where('name','Arsenal' );
})->orWhereHas('awayClub',function ( $query ){
$query->where('name','Arsenal' );
});
})
->where( function ( $subquery ) use ( $ret, $parameterValues ){
$ret->whereHas('season', function ($query) use ( $parameterValues ){
$query->where('name', $parameterValues['season_names'] );
});
} )
->whereHas('territory',function( $query ) use …Run Code Online (Sandbox Code Playgroud) 我正在使用新的whereHas方法在Laravel 4.1中为急切加载的关系添加约束.
$broadcast = $broadcast->whereHas('season', function( $query ) use ( $parameterValues ){
$query->where('name', '2011-12' );
});
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我正在寻找足球/足球广播,其中的关系是广播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'] );
});
Run Code Online (Sandbox Code Playgroud)
但这似乎取消了我在第一个例子中提到的对赛季的限制.就像通过链接orWhereHas一样,我的where方法"忘记了"他们所约束的东西.
任何帮助,非常感谢 - 谢谢
乔恩.