关系查询与参数分组

时间:2017-04-13 01:09:32

标签: laravel eloquent octobercms

我对模型有以下查询 - 但是仅查询团队匹配的条件仅适用于第一个where子句。

$this->matches = $this->team->matches()->whereNull('wbp')->orWhere(function($q) {
        $q->whereNotNull('wbp')->where('is_played','=',0);
    })->get();

如果我自己使用它们,它们就能正常工作 - 两者都应该按原样返回一个项目:

 $this->team->matches()->whereNull('wbp')->get();

 $this->team->matches()->where(function($q) {
        $q->whereNotNull('wbp')->where('is_played','=',0);
    })->get();

但链接他们只会给我wbp为null的所有球队比赛,以及wbp!= null和is_played = false的任何球队的所有比赛。

如何在此正确链接?

1 个答案:

答案 0 :(得分:1)

我需要在matches()调用的地方链接:

$this->matches = $this->team->matches()->where(function ($q)
    {
        $q->whereNull('wbp')->orWhere(function($q) 
        {
            $q->whereNotNull('wbp')->where('is_played','=',0);
        });
    })->get();