如果没有值或null laravel,则不要更改该值

时间:2017-12-18 19:28:45

标签: laravel validation request

我正在开发一个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感谢

1 个答案:

答案 0 :(得分:3)

显然在存储之前只需检查:

if($request->filled('password') )
{
    $user->update(['email'=>$request->email, 'password'=>bcrypt($request->password)];
}
 //otherwise just save the other data without password ! 

使用filled()方法如果您想确定请求中是否存在值且不为空。