我熟悉如何使用Eloquent关系,但我很难理解这种特殊情况。
我有users
和addresses
个表。
用户可以拥有多个地址,但用户也可以共享一个地址。所以我需要创建一个user_addresses
表。
user_addresses
表看起来像这样......
id , user_id , address_id
如何设置我的关系以便我可以检索特定用户的所有地址,这样我就可以执行$user_addresses = $user->addresses()
答案 0 :(得分:4)
您正在寻找使用belongsToMany的Many To Many关系:
用户模型中的
public function addresses(){
return $this->belongsToMany('App\Address', 'user_addresses');
}
您可以调用$ user->地址来访问这些值,如果您将用户传递到视图,则无需将它们放在变量中,您只需调用$ user->地址即可。
如果您将表格重命名为' address_user'你可以使用:
return $this->belongsToMany('App\Address');
表的名称源自相关型号名称的字母顺序。