我正在开发一个Laravel项目,当我没有填写密码字段时,我在更新用户方面遇到了一些问题: 这是我的UserRequest更新代码
elseif($this->method() == 'PATCH')
{
return [
'user_name' => 'required|max:40|min:1|unique:users,user_name,'.$this->id,
'user_email' => 'required|email|max:40|min:3|unique:users,user_email,'.$this->id,
'user_phone' => 'required|max:40|min:1',
'password' => 'nullable|min:3',
'image' => 'nullable|image|mimes:jpg,jpeg,gif,png|max:2048',
];
}
现在我的问题是,当有人提交没有正确密码的表单时,它会将密码更改为空值,而我需要的只是更改旧值,如果有来自请求的值,如果不是只留下旧的而且不要从请求中获取null感谢
答案 0 :(得分:3)
显然在存储之前只需检查:
if($request->filled('password') )
{
$user->update(['email'=>$request->email, 'password'=>bcrypt($request->password)];
}
//otherwise just save the other data without password !
使用filled()
方法如果您想确定请求中是否存在值且不为空。