我正在制作用户和地址表。那将是一对一的关系。 当我看到一些公司和用户一对一关系的示例时,公司有一个外键,而用户没有分配键。 怎么决定D?
公司表
$table->integer('user_id')->unsigned()->nullable();
$table->foreign('user_id')->references('id')->on('users');
答案 0 :(得分:0)
我以laravel文档中的示例来说明您的问题:
例如,一个用户模型可能与一个电话相关联。为了定义这种关系,我们在 User 模型上放置了电话方法。 phone方法应调用 hasOne 方法并返回其结果:
Class User {
/**
* Get the phone record associated with the user.
*/
public function phone()
{
return $this->hasOne('App\Phone');
}
}
然后我们可以获得属于用户的电话:
$phone = User::find(1)->phone;
Eloquent根据模型名称确定关系的外键。在这种情况下,会自动假定电话模型具有 user_id 外键。
因此,我们可以从我们的用户访问电话模型。现在,让我们在电话模型上定义一个关系,该关系将使我们能够访问拥有电话的用户。
class Phone
{
/**
* Get the user that owns the phone.
*/
public function user()
{
return $this->belongsTo('App\User');
}
}
这里是表的表示形式:
___________ __________
| User | | Phone |
|_________| |_________|
| id | | id |
|_________| |_________|
| name | | number |
|_________| |_________|
| lastname| | user_id | ----------> foreign key
|_________| |_________|