A User
имеет один (или нулевой) Company
, а a Company
принадлежит к одному и только одному User
. Я пытаюсь сохранить компанию для пользователя, но она добавляет новую запись в базу данных при каждом повторном запуске метода сохранения. Это отношение один к одному, поэтому я, хотя save
метод на User
.Сохранение отношения один к одному в Laravel
Так 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), но во второй раз добавляет новую запись для того же пользователя (не в порядке). Я думал, что он только обновит запись в базе данных.
Является ли это сбой (или что-то, что я не понимаю в отношениях один к одному) в Ларавеле или Я делаю что-то неправильно? (я думаю и надеюсь, что это вторая цель)
Проверьте этот ответ, он может помочь вам: http://stackoverflow.com/a/20764237/5122070 –
Спасибо, но я не уверен, что это действительно помогает для этой конкретной проблемы. Моя проблема более конкретна. Речь идет о сохранении (создании или обновлении) непосредственно в отношении –