【发布时间】:2017-03-10 13:07:53
【问题描述】:
我想更新个人资料,当我更新记录时,我没有更改的旧数据也会更新。
我只想更新那些已更改的值。不应更新未更改的值。
路线:
Route::post('/profile/settings/{user}', 'Admin\userController@UpdateProfileSettings')->name('profile.settings');
控制器方法:
public function UpdateProfileSettings(Request $request, User $user)
{
if (auth()->user()->id == $user->id) {
$user->update([
'name' => $request->name,
'qualification' => $request->qualification,
'institute' => $request->institute,
'gender' => $request->gender,
'speciality' => $request->speciality,
'address' => $request->address,
]);
return redirect()->back();
} else {
abort(403, "Unauthorized");
}
}
【问题讨论】:
-
我假设您没有发送未更改的数据,对吗?
-
如何查看?用户可以编辑任何字段。
-
我的意思是 $request->field 的值是什么,如果它没有改变的话。var_dump 值并在此处显示。
-
在每个表单字段的 value 属性中使用 old(
) 函数,它将用数据填充输入,当您保存未更改的数据时,只需将旧数据替换为 old(untouched数据)和更改的数据将被替换旧的。 -
我也在做同样的事情。但我只保存独特的电子邮件。如果用户更改它的配置文件并保存它,则会引发重复电子邮件错误。
标签: php http sql-update laravel-5.3