php - 如何忽略更新方法中没有数据的输入
问题描述
我有一个表格来更新用户数据名称、电子邮件和用户名。问题是如果用户只想更新用户,我如何保持相同的电子邮件和名称或仅更改名称在我的情况下验证需要所有输入这是我的控制器
public function update(Request $request, $username )
{
if($username != Auth::user()->username){
return abort('401');
}
$request->validate([
'name' => 'min:10|max:50|required',
'username' => 'unique:users|max:30|min:3|required',
'email' => 'email|unique:users|max:200|required',
]);
$checkuserindb = User::findOrFail(Auth::user()->id);
$checkuserindb->update([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email
]);
return redirect()->route('userProfile', $request->username)->with('message', 'your account has been updated!');
}
解决方案
在您的输入字段中,只需添加来自数据库的实际值,如下所示:
<input type="text" name="name" value="{{$user->name}}">
<input type="text" name="username" value="{{$user->username}}">
<input type="email" name="email" value="{{$user->email}}">
还使用“有时”规则并更新您想要的任何字段:
'name' => 'min:10|max:50|sometimes',
'username' => 'unique:users|max:30|min:3|sometimes',
'email' => 'email|unique:users|max:200|sometimes',
推荐阅读
- ssh - 将流量从办公室重定向到家
- reactjs - Magento PWA graphql 问题
- angular - 无法使用 jasmine 以角度测试服务方法
- python - 在python中下载数据时的索引问题
- python - ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序。psspy
- java - 为什么我的对象在我的 Swing UI 上重叠?
- reactjs - 118:51:预计在箭头函数 array-callback-return 的末尾返回一个值
- javascript - Nodemailer - 提交表单验证
- javascript - Gitlab 变量和 Vanilla Javascript
- python-3.x - 如何在pygame中以同一毫秒播放多个声音文件?