[英]Selecting from more than one model in an eloquent many to many relationship
我的应用程序中的Employers
和Employees
之间存在多对多关系,并且我试图确定如何查询在一组公司工作的所有“雇员”。
例如,我可能希望选择“ Industry Corp”和“ Shovels Unlimited”的所有员工
如果我分别查询这些信息,我将获得Industry Corp的[ Sam , Nathan ]以及Shovels Unlimited的[ Kory , Nathan ]
我可以单独选择这些,然后合并,但随后得到一个重复的Nathan。
[ Sam , Nathan , Kory , Nathan ]
有没有办法使此查询返回结果[ Sam , Nathan , Kory ]?
我已经尝试了很多东西,但是我尝试得到的并没有得到我真正需要的东西。
这将使我从一位雇主那里得到我所需要的
Employer::find(2)->employees()->get()
这将使我有两个或多个雇主
Employer::::findMany([2,4]);
但是我不能简单地
Employer::::findMany([2,4])->employees()->get();
因为findMany([...])
返回Illuminate\\Support\\Collection
是的,您想使用whereHas
。
$employer_ids = [1, 2, 3]; // These are ids of employers you want to get all employees for.
$employees = Employee::whereHas('employers', function($q) use ($employer_ids) {
$q->whereIn('employer_id', $employer_ids);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.