我有UserInfo
模型和user_info
模型。他们是一对一的关系。
当用户注册时,他会继续填写包含更多信息的非常大的表单。它包含在UserInfo
表中,由$user->user_info()->create($request->all());
模型表示。
我目前正在这样做
UserInfo
它可以工作,但如果它第二次运行,它会为同一个用户创建另外updateOrCreate
个记录。
有没有办法可以做到这一点,如果此用户已经存在UserInfo记录,它只会更新现有的
是否有类似UserInfo
的方法可以像这样使用Mass Assignment?
因此,如果此User
上已存在{{1}}记录,则只会使用这些新值进行更新
答案 0 :(得分:0)
您可以使用updateOrCreate()
方法实现updateOrCreate功能。
的用法:强>
Model::updateOrCreate(
['primary_key' => 8],
['field' => 'value', 'another_field' => 'another value']
);
在您的情况下,您可以按照以下方式使用健身:
$user->user_info()->updateOrCreate(['id'=>$user->id],$request->all());
代替['id'=>$user->id]
中的ID,使用模型主键的名称。