在拉拉维尔保存一对一的关系
A 有一个(或零),而 a 属于一个且只有一个。我尝试为用户保存公司,但每次重新触发保存方法时,它都会在数据库中添加一个新条目。这是一个一对一的关系,所以我虽然方法在.User
Company
Company
User
save
User
所以有一种方法:Company
user()
public function user() {
return $this->belongsTo(User::class, 'user_id');
}
并且有一种方法:User
company()
public function company() {
return $this->hasOne(Company::class, 'user_id');
}
我正在尝试保存(因此创建或更新)用户的公司,如下所示(在控制器中):
$company = new Company();
$company->name = 'Test';
User::findOrFail(1)->company()->save($company);
第一次运行此代码时,它会在数据库中创建条目(OK),但第二次它会为同一用户添加一个新条目(不OK)。我以为它只会更新数据库条目。
这是Laravel中的故障(或者我在一对一的关系中不理解的东西)还是我做错了什么?(我认为并希望这是第二个目的)