首页 文章

如果密码字段为空,则编辑用户信息而不更改密码,如果我们填写匹配确认,则编辑它

提问于
浏览
3

我正在使用lareavel 5,我想创建一个from来更新用户信息

我的表单有4个字段名称,电子邮件,密码和确认密码

需要名称的验证规则,电子邮件有效和必需,以及所需密码,最小:6个字符并与确认匹配 .

现在一切都还可以 .

我想做的是:

当用户填写密码时,应填写并匹配确认字段 . 但是如果用户没有填写密码,则提交将通过并且没有验证错误并更新用户信息而无需更改密码 .

验证码:

$user = Input::all();

    if (trim($user['password']) != "") {
        $rules = array(
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users,email,' . $id,
            'password' => 'required|confirmed|min:6',   
            );
    }
    else{
         $rules = array(
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users,email,' . $id,  
            );
    }

更新用户信息代码:

$user = User::findOrFail($id);

        $user->name = $data['name'];
        $user->email = $data['email'];


        if (trim($data['password']) != "") {
            $user->password = bcrypt($data['password']);
        }

        $user->save();

我使用的任何其他最佳解决方案 .

1 回答

  • 1

    您可以使用 required_withsame 验证规则 . 这使得两个字段相互依赖,并且两者都不需要填充 .

    'password' => 'required_with:password_confirmation|same:password_confirmation|min:6',   
    'password_confirmation' => 'required_with:password|min:6',
    

相关问题