首页 > 解决方案 > Laravel 7 或与和混合的地方

问题描述

您好,我希望在现有的 orWhere 行中添加一个和条件。我不确定这是否可能。这是代码。

 return $builder->whereHas('tags', function(Builder $query) use($tagId) {
                $query->where('tags.name', 'verification')->orWhere('tags.name', 'pending')->orwhereNotNull('assigned_to');
            });

所以我想要的是最后的 orwhereNotNull 部分,我希望它像(orwhereNotNull('assigned_to')和条件)仅适用于那些 2。所以总的来说代码就像

$query->where('tags.name', 'verification')->orWhere('tags.name', 'pending')->(orwhereNotNull('assigned_to') and condition)

标签: phplaravel

解决方案


尝试这个:

return $builder->whereHas('tags', function(Builder $query) use($tagId) {
    $query->where('tags.name', 'verification')
          ->orWhere(function($q1) {
              $q1->where('tags.name', 'pending')
                 ->where(function($q2) {
                   $q2->whereNotNull('assigned_to');
                   // your condition you want to use
                });
          });
});

推荐阅读