Laravel检查belongstomany是否包含belongstomany

Laravel check if belongstomany contains belongstomany

在我的系统中:

我正在尝试通过销售人员检查潜在客户是否有经理。这是一项政策,因此我可以确保经理可以看到他们销售人员的销售线索。

像这样:

$lead->salespeople->contains($manager->salespeople)

是否有一种收集方法可以让我这样做?我也试过这样的东西,但也不起作用:

$lead->salespeople->contains('id', $manager->salespeople->pluck('id')->toArray())

编辑,我想我明白了。这看起来正确吗?:

$lead->salespeople->intersect($manager->salespeople)->count() > 0

最终用这个包解决了这个问题:https://github.com/staudenmeir/eloquent-has-many-deep

这是我现在的关系方法:

public function managers()
{
    return $this->hasManyDeepFromRelations($this->salespeople(), (new User)->setAlias('salesperson')->managers());
}