【发布时间】:2020-02-25 18:21:04
【问题描述】:
我正在我的 laravel 项目中创建一堆模型。有四个模型,这意味着我的数据库中有四个表。即模型为User、UserInfo、UserAddress、UserContact。用户表为主表,列结构如下:
users -> id , email, password,....other unimportant stuff.
user_info -> id, name, identity num, ......
user_address -> id, user_id, address1, address2,address3, shipping address,....
user_contact-> id, user_id, mobile_num,emergency_num,......
如您所见,id 列是了解任何用户全部信息的关键标识符。我试图在他们四个之间定义一种雄辩的关系,但不知道我是否正确。这是我目前所拥有的:
用户模型:
public function user_info(){
return $this->hasOne('App\Models\UserInfo');
}
public function user_address(){
return $this->hasOne('App\Models\UserAddress');
}
public function user_contact(){
return $this->hasOne('App\Models\UserContact');
}
用户信息模型:
public function user(){
return $this->belongsTo('App\Models\User');
}
public function user_address(){
return $this->hasMany('App\Models\UserAddress');
}
public function user_contact(){
return $this->hasMany('App\Models\UserContact');
}
用户地址模型:
public function user(){
return $this->belongsTo('App\Models\User');
}
public function user_info(){
return $this->belongsTo('App\Models\UserInfo');
}
public function user_contact(){
return $this->hasMany('App\Models\UserContact');
}
用户联系模型:
public function user(){
return $this->belongsTo('App\Models\User');
}
public function user_info(){
return $this->belongsTo('App\Models\UserInfo');
}
public function user_address(){
return $this->belongsTo('App\Models\UserAddress');
}
所以问题是我不确定,例如,用户是联系用户地址的孩子还是相反?
用户是否联系用户信息的孩子?
有人能解释一下吗?
欣赏它。
【问题讨论】:
-
你在
user_info表上没有user_id吗? -
您提供的细节太少,无法回答您的问题。例如。你的
User模型 hasOneUserAddress和 hasOneUserContact为什么UserAddress模型会有很多UserContact?user_address表中指向user_address表的外键是哪个键?这是我看到的第一件事,但似乎有更多的不一致之处,您需要对用例提供更好的解释,以便我们了解您想要实现的目标。 -
我很抱歉,因为我在更改代码之前输入了错误的一些信息。你现在可以忽略这些。基本上,一个用户有一个用户信息,但可以有多个地址和多个联系人。事情就是这样。信息够了吗?