繁体   English   中英

以雄辩的多对多关系从多个模型中进行选择

[英]Selecting from more than one model in an eloquent many to many relationship

我的应用程序中的EmployersEmployees之间存在多对多关系,并且我试图确定如何查询在一组公司工作的所有“雇员”。

例如,我可能希望选择“ Industry Corp”和“ Shovels Unlimited”的所有员工

示例数据关系

如果我分别查询这些信息,我将获得Industry Corp的[ SamNathan ]以及Shovels Unlimited的[ KoryNathan ]

我可以单独选择这些,然后合并,但随后得到一个重复的Nathan。
[ SamNathanKoryNathan ]

有没有办法使此查询返回结果[ SamNathanKory ]?


我已经尝试了很多东西,但是我尝试得到的并没有得到我真正需要的东西。

这将使我从一位雇主那里得到我所需要的

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM