[英]Eloquent where clause in JOIN table - Laravel 5.5
我有两个相互连接的模型。
class Company extends Model {
public function addresses() {
return $this->belongsToMany('\App\Address', 'address_mapping', 'uid_company', 'uid_address');
}
}
class Address extends Model {
}
在我的JOIN表中,有一列名为active的列。 我如何从公司获取所有有效地址? 或者如何在JOIN表中实现一个从句?
谢谢!
您称为“ JOIN表”的表,通常称为数据透视表 。 您可以使用wherePivot
方法获取所有活动记录:
$company = Company::first();
$activeAdresses = $company->addresses()->wherePivot('active', 1);
或者,您可以直接在模型中定义关系:
class Company extends Model {
public function activeAddresses() {
return $this->belongsToMany('\App\Address', 'address_mapping', 'uid_company', 'uid_address')
->wherePivot('active', 1);
}
}
请参见口才文档中的 通过中间表列过滤关系
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.