【问题标题】:Edit user info without change password if password field empty and edit it if we fill it with match confirm如果密码字段为空,则编辑用户信息而不更改密码,如果我们填写匹配确认,则编辑它
【发布时间】:2015-07-02 06:22:35
【问题描述】:

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

我的表单有 4 个字段 姓名、邮箱、密码和确认密码

姓名验证规则,邮箱有效且需要,密码需要,最少6个字符并与confirm匹配。

目前一切正常。

我想做的是:

当用户填写密码时,应填写并匹配确认字段。但是如果用户没有填写密码,提交将通过并且没有验证错误并且在不更改密码的情况下更新用户信息。

验证码:

  $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();

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

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-18
      • 2013-05-12
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多