laravel 5.1 : 我怎样才能在 eloquent 中有两个 wherePivot?

laravel 5.1 : how can i have two wherePivot in eloquent?

我需要检查枢轴上的两个 where 条件 table。我知道我可以用这个检查一个条件:

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

但是,我想要两个where条件。当我使用 orWherePivot 时,两个 where 条件被 OR 编辑在一起,但我希望它们被 AND 编辑在一起。

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

wherePivot() 与正常的 where() 方法相同;您可以只链接第二个 wherePivot() 条件,它将 AND 与前面的条件相结合:

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

wherePivot函数定义如下。所以你可以使用 $boolean 变量作为 'or' 和 'and' 加入条件

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();