繁体   English   中英

JOIN表中的雄辩的where子句-Laravel 5.5

[英]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.

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