繁体   English   中英

查询Laravel在所有id相等的情况下向很多人口述

[英]Query Laravel Eloquent many to many where all id's are equal

我创建了一个基于Laravel的项目,并且当attribute_company用作连接companiesattributes表的数据透视表时, companiesattributesattribute_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.

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