我目前正在使用Laravel
学习开发,我遇到了一个小问题。我想要两个Models
:Users
和Addresses
用户只有一个Address
,因此我必须将foreign key
的{{1}}放在address
表中吗?但根据Laravel documentation,user
表格中包含Address
。
Eloquent根据模型名称假定关系的外键。在这种情况下,自动假定Phone模型具有user_id外键。如果要覆盖此约定,可以将第二个参数传递给hasOne方法:
我应该如何在user foreign key
表中使用foreign key
而不是在User
表中(这在我看来更符合逻辑)。谢谢!
答案 0 :(得分:1)
在地址表中包含user_id
字段更为正确。但是如果你想这样做,请改为使用belongsTo
关系:
class User {
public function address(){
return $this->belongsTo('App\Address');
}
}
您可以从语言中看出这不是正确的 - 用户应该有一个地址,并且地址应该属于用户。但是如果你喜欢这种方式,这段代码就可以了。
答案 1 :(得分:1)
您可以在用户模型中输入地址查询。
public function address(){
return $this-> hasOne(\App\Address::class);
}
然后可以调用:
{{$this->user->address()}}
您的地址表中的Thane会为上面的内容创建一个名为users_id的字段。