Php Laravel:更新模型和相关模型
我是拉威尔的新手,目前我正在尝试更新一些用户信息 在我的代码中,我更新了to user表的用户名和电子邮件以及user_info表中的用户信息 它可以工作,但我觉得它可以在更短的代码中完成 此外,每次更新user_info表时,都会插入一个新行,而不是更新当前行Php Laravel:更新模型和相关模型,php,database,laravel,Php,Database,Laravel,我是拉威尔的新手,目前我正在尝试更新一些用户信息 在我的代码中,我更新了to user表的用户名和电子邮件以及user_info表中的用户信息 它可以工作,但我觉得它可以在更短的代码中完成 此外,每次更新user_info表时,都会插入一个新行,而不是更新当前行 public function update(Request $request, $id) { $data = $request->validate([ 'name' => '
public function update(Request $request, $id)
{
$data = $request->validate([
'name' => 'required',
'email' => 'required',
'firstName' => 'required',
'lastName' => 'required',
'phone' => 'required',
'cityProvince' => 'required',
'zipPostalCode' => 'required',
]);
$user = User::find($id);
$user->name = $data['name'];
$user->email = $data['email'];
$user->save();
$userInfo = new UserInfo([
'first_name' => $data['firstName'],
'last_name' => $data['lastName'],
'phone' => $data['phone'],
'city_province' => $data['cityProvince'],
'zip_postalcode' => $data['zipPostalCode'],
]);
$user->userInfo()->save($userInfo);
return redirect()->route('settings.index');
}
Laravel具有内置功能,您可以检查 您可以使用下面的代码,它将检查记录是否存在,然后更新,否则将插入新记录
$uinfo = UserInfo::firstOrNew([
'user_id' => $user->id,
]);
$uinfo->first_name = $data['firstName'];
$uinfo->last_name = $data['lastName'];
$uinfo->phone => $data['phone'];
$uinfo->city_province => $data['cityProvince'];
$uinfo->zip_postalcode => $data['zipPostalCode'];
$uinfo->save();
Laravel具有内置功能,您可以检查 您可以使用下面的代码,它将检查记录是否存在,然后更新,否则将插入新记录
$uinfo = UserInfo::firstOrNew([
'user_id' => $user->id,
]);
$uinfo->first_name = $data['firstName'];
$uinfo->last_name = $data['lastName'];
$uinfo->phone => $data['phone'];
$uinfo->city_province => $data['cityProvince'];
$uinfo->zip_postalcode => $data['zipPostalCode'];
$uinfo->save();
newuserinfo
您正在启动新用户信息如何更新用户表。您是否使用相同的函数?映射数组中的数据$userInfo=['first\u name'=>$data['firstName'],…]
并使用更新方法$user->userInfo()->update($userInfo)代码>在可填充数组中需要该字段model@porloscerrosψ,如果我尝试此操作,数据将不会保存,但不会出现错误。new UserInfo
您正在启动new user info如何更新用户表。您是否使用相同的函数?映射数组中的数据$userInfo=['first\u name'=>$data['firstName'],…]
并使用更新方法$user->userInfo()->update($userInfo)代码>在可填充数组中需要该字段model@porloscerrosψ,如果我尝试此操作,数据将不会保存,但没有错误。嗯,如果我尝试此操作,我将得到一个SQLSTATE[23502]:非空冲突:7错误:列“user\u id”中的空值在第一个\u name之前添加$uinfo->user\u id=$user->id
。嗯,如果我尝试此操作,我将得到一个SQLSTATE[23502]:非空冲突:7错误:列“user\u id”中的空值在第一个\u名称之前添加$uinfo->user\u id=$user->id