[英]Query Laravel Eloquent many to many where all id's are equal
我创建了一个基于Laravel的项目,并且当attribute_company
用作连接companies
和attributes
表的数据透视表时, companies
, attributes
和attribute_company
与Many To Many关系相关。
我从客户端获得了一系列attribute_id
,我需要获得具有完整属性的公司的结果。
我找到的唯一解决方案是查询whereHas
whereIn
inside里面,如下所示:
Company::whereHas('attributes', function (Builder $query) use ($atts_ids) {
$query->whereIn('attribute_id', $atts_ids);
})->get();
如果找到至少一个attribute_id
(这不是我要查找的内容),此查询将返回companies
。
如果有人能让我更清楚的话会很棒。
谢谢大家 :)
一种可能的方案:
$company = new Company();
$company = $company->newQuery();
foreach($atts_ids as $att_id)
{
$company = $company->whereHas('attributes', function (Builder $query) use ($att_id) {
$query->where('attribute_id', $att_id);
});
}
$company = $company->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.