A User
has one (or zero) Company
, and a Company
belongs to one and only one User
. I try to save a company for a user but it adds a new entry in database every time I re-trigger the save method. It's a one to one relation, so I though save
method on User
.
So Company
has one method user()
:
public function user() {return $this->belongsTo(User::class, 'user_id');}
And User
has one method company()
:
public function company() {return $this->hasOne(Company::class, 'user_id');}
I'm trying to save (so create or update) a user's company like this (in a Controller):
$company = new Company();$company->name = 'Test';User::findOrFail(1)->company()->save($company);
First time I run this code it creates the entry in database (OK), but second time it adds a new entry for the same user (Not OK). I thought it will only update the database entry.
Is it a glitch (or something I don't understand in one to one relation) in Laravel or am I doing something wrong? (I think and hope it's the second purpose)