Laravel 5.2关系

时间:2016-06-04 11:32:30

标签: php laravel eloquent laravel-5.2

我熟悉如何使用Eloquent关系,但我很难理解这种特殊情况。

我有usersaddresses个表。

用户可以拥有多个地址,但用户也可以共享一个地址。所以我需要创建一个user_addresses表。

user_addresses表看起来像这样......

id user_id address_id

如何设置我的关系以便我可以检索特定用户的所有地址,这样我就可以执行$user_addresses = $user->addresses()

之类的操作

1 个答案:

答案 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');

表的名称源自相关型号名称的字母顺序。