php - 检测 laravel 输入预填充值的变化
问题描述
我正在设置页面上,如果用户在输入字段中看到他预填的用户名和电子邮件。我喜欢检测(没有 jQuery )用户是否更改了输入上的预填充值。
对于密码重置字段(未预填充),我使用以下逻辑:
if($request['password'] != ""){
if(!(Hash::check($request['password'], Auth::user()->password))){
return redirect()->back()->with('error', 'Your password does not match with the password you provided.');
}
if(strcmp($request['password'], $request['new_password']) == 0){
return redirect()->back()->with('error', 'New password cannot be same as your old one.');
}
$validation = $request->validate([
'password' => 'required',
'new_password' => 'required|string|min:6|confirmed',
]);
$user->password = bcrypt($request['new_password']);
$user->save();
return redirect()->back()->with('alert-success', 'Password changed
successfully');
}
我如何检查用户是否更改了预填充代码以使用以下过程:
if($request[''] ????? ""){
$user = Auth::user();
$user->name = $request['name'];
$user->email = $request['email'];
$user->save();
}
谢谢
解决方案
在我看来,你不需要这一切。只需使用以下内容。如果值发生变化,它只会真正更新模型。如果值没有改变(即提交的数据与已经存储在数据库中的数据相同),则不会进行数据库查询。
$user = Auth::user();
$user->fill($request->only(['name', 'email']));
$user->save();
推荐阅读
- reactjs - React-Redux Redux Action 被多次调用
- python - numpy中的3d矩阵乘法
- xcode - 为 iOS Simulator-i386 构建 Nativescript,但尝试链接为 iOS Simulator-x86_64 构建的文件
- javascript - 日志中的 ValidationError 项
- javascript - Javascript:填充表格的行/单元格,新数据不会覆盖现有的单元格数据
- javascript - 推送后JavaScript数组为空
- python - 如何获取文本中的文本
使用 Selenium 和 Python 的 iframe 包含的标签?
- python - GitPython - 从所有分支中提取
- c - 删除链表中指向的节点
- json - 使用 '\' 将哈希表转换为 JSON