如何在Laravel Eloquent中使用AND条件编写where语句?

xuo3flqw  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(114)

我有3个表与多对多的关系。
1.接触
1.标签

  • 联系我们
  • 联系人ID
  • tag_id在此输入代码

以下是Model的外观:

class Contact extends Model{       
    public function tags()
    {
     return $this->belongsToMany('App\Models\Tag', 'contact_tags', 'contact_id', 
     'tag_id');
    } 
  }

字符串
我想只检索同时具有“销售经理”和“产品经理”标签的联系人。如何操作?
这是我的疑问。

$tags = ['Sales Manager','Product Manager'];

Contact::whereHas('tags', function($query) use ($tags){
   $query->whereIn($tags);
})


它返回的联系人的标签要么在'销售经理'或'产品经理。我想做'与'条件。我尝试过这种方式,但它返回空数组。

Contact::whereHas('tags', function ($query) use ($tags) {
   $query->where('tags.name', $tags[0]);
   for ($i = 1; $i < count($tags); $i++) {
       $query->where('tags.name', $tags[$i]);
   }
  });

bfnvny8b

bfnvny8b1#

我认为你需要做两个存在检查,因为你要检查两个东西的存在:

Contact::whereHas('tags', function($query) {
        $query->where('name', 'Sales Manager');
    })
    ->whereHas('tags', function($query) {
        $query->where('name', 'Product Manager');
    });

字符串

相关问题