我有两个相互连接的模型。
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表中实现where子句?
谢谢!
答案 0 :(得分:1)
您调用" 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);
}
}
中的通过中间表列过滤关系部分