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没问题,我只是好奇我是否错过了什么。