Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉维5.2关系_Php_Laravel_Eloquent_Laravel 5.2 - Fatal编程技术网

Php 拉维5.2关系

Php 拉维5.2关系,php,laravel,eloquent,laravel-5.2,Php,Laravel,Eloquent,Laravel 5.2,我很熟悉如何使用雄辩的人际关系,但我正努力让我的头脑围绕着这个特定的场景 我有用户和地址表格 一个用户可以有许多地址,但用户也可以共享一个地址。因此,我需要创建一个user\u addresses表 user\u addresses表如下所示 id、用户id、地址id 如何设置关系,以便检索特定用户的所有地址,以便执行类似于$user\u addresses=$user->addresses()的操作您正在查找使用belongtomy的关系: 在您的用户模型中 public function a

我很熟悉如何使用雄辩的人际关系,但我正努力让我的头脑围绕着这个特定的场景

我有
用户
地址
表格

一个用户可以有许多地址,但用户也可以共享一个地址。因此,我需要创建一个
user\u addresses

user\u addresses
表如下所示

id、用户id、地址id

如何设置关系,以便检索特定用户的所有地址,以便执行类似于
$user\u addresses=$user->addresses()

的操作您正在查找使用belongtomy的关系:

在您的用户模型中

public function addresses(){
    return $this->belongsToMany('App\Address', 'user_addresses');
}
您可以调用$user->addresses来访问这些值,如果将用户传递给视图,则无需将它们放入变量中,您只需调用$user->addresses即可

如果将表重命名为“地址\用户”,则可以使用:

return $this->belongsToMany('App\Address');
该表的名称是根据相关型号名称的字母顺序派生的。

您正在寻找使用belongtomy的关系:

在您的用户模型中

public function addresses(){
    return $this->belongsToMany('App\Address', 'user_addresses');
}
您可以调用$user->addresses来访问这些值,如果将用户传递给视图,则无需将它们放入变量中,您只需调用$user->addresses即可

如果将表重命名为“地址\用户”,则可以使用:

return $this->belongsToMany('App\Address');

该表的名称是根据相关型号名称的字母顺序派生的。

是否增加了比需要更多的复杂性?每个用户都有自己的地址集有什么问题,即使这些地址恰好包含相同的信息?@GeorgeCummins一种情况可能是默认地址,在更新时检查它是否是默认地址,如果他有默认地址,则创建一个新地址。因此,你还不够熟悉:你是否增加了比需要更多的复杂性?每个用户都有自己的地址集有什么问题,即使这些地址恰好包含相同的信息?@GeorgeCummins一种情况可能是默认地址,在更新时检查它是否是默认地址,如果他有默认地址,则创建一个新地址。因此,你还不够熟悉:如果pivot表中没有名为
addresses\u id
@Filipkoblanński的列,你的第一个答案就不起作用了。不,你可以使用address\u id,因为模型的名称是使用+\u id。没错,你说得对:)我错了,对不起+1为you@FilipKobla没问题,我只是好奇我是否漏掉了什么。不幸的是,如果pivot表中没有名为
addresses\u id
@Filipkoblanński的列,你的第一个答案就不起作用了。不,你可以使用address\u id,因为模型的名称使用了+\u id。是的,你说对了:)我的错误,对不起+1为you@FilipKobla没问题,我只是好奇我是否错过了什么。