我制作了一個基于 Laravel 的項目,并且當用作數據透視表來連接和表時,表有:companies、attributes和attribute_company相關的多對多關系。attribute_companycompaniesattributes我attribute_id從客戶那里得到了's的數組,我需要得到完全具有全部屬性的公司的結果。我找到的唯一解決方案是像這樣whereHas結合whereIninside查詢:Company::whereHas('attributes', function (Builder $query) use ($atts_ids) { $query->whereIn('attribute_id', $atts_ids);})->get();companies如果至少attribute_id找到一個(這不是我要找的),則此查詢將返回。如果有人能讓我更清楚,那就太好了。謝謝大家 :)
1 回答

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
一種可能的解決方案:
$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();
- 1 回答
- 0 關注
- 167 瀏覽
添加回答
舉報
0/150
提交
取消