gpt4 book ai didi

php - WhereHas()/orWhereHas 未按预期约束查询

转载 作者:行者123 更新时间:2023-12-02 14:20:04 27 4
gpt4 key购买 nike

我正在使用新的 whereHas 方法在 Laravel 4.1 中添加对急切加载关系的约束。

$broadcast = $broadcast->whereHas('season', function ($query) use ($parameterValues) {
$query->where('name', '2011-12');
});

在此示例中,我正在搜索足球/足球广播,其中关系是 Broadcast belongsTo a Season

我想为团队(俱乐部)添加一个约束,其中关系是 Broadcast hasOne homeClubBroadcast hasOne awayClub。我想要了解球队(利物浦)是主队还是客队的结果,因此我尝试使用 orWhereHas - a featured added in 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 方法“忘记”了它们所限制的内容。

最佳答案

我使用的方法不正确。我首先加载了两个关联,然后链接了 whereHasorWhereHas

$broadcast->with('homeClub');
$broadcast->with('awayClub');

$broadcast->whereHas('homeClub', function($query) use ($parameterValues) {
$query->where('abb', 'liverpool');
})->orWhereHas('awayClub', function($query) use ($parameterValues) {
$query->where('abb', 'liverpool');
});

关于php - WhereHas()/orWhereHas 未按预期约束查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21116742/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com