laravel 5.1:我怎么能有两个wherePivot在雄辩?

时间:2017-01-12 08:14:38

标签: php laravel laravel-5 eloquent laravel-5.1

我需要在数据透视表上检查两个条件。我知道我可以用这个检查一个条件:

$dis = $user->discounts()->wherePivot('used_for_id', '=', null)

然而,我想要两个条件。当我使用orWherePivot时,两个条件OR在一起,但我希望它们AND在一起。

$whereData = [
    ['id', "=", $discountId],
    ['used_for_id', "=", null]
];

2 个答案:

答案 0 :(得分:4)

wherePivot()的工作方式与普通的where()方法相同;您可以链接到第二个wherePivot()条件,并且AND符合之前的条件:

$dis = $user
    ->discounts()
    ->wherePivot('id', '=', $discountId)
    ->wherePivot('used_for_id', '=', null)
    ->get();

答案 1 :(得分:3)

下面给出了wherePivot函数定义。所以你可以使用$ boolean变量作为'或者'和'和'加入条件

public function wherePivot($column, $operator = null, $value = null, $boolean = 'and') {   
  //code   
}   

 $dis = $user->discounts()->wherePivot('column', '=', null,'and')      
        ->wherePivot('column', '=', null,'or')       
        ->wherePivot('column', '=', null,'and')     
        ->get();