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

时间:2015-04-23 20:51:05

标签: php laravel laravel-5

我正在使用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 个答案:

答案 0 :(得分:1)

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

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