Laravel密码& Password_Confirmation验证

时间:2017-03-06 10:59:25

标签: laravel validation passwords

我一直在使用它来编辑用户帐户信息:

$this->validate($request, [
    'password' => 'min:6',
    'password_confirmation' => 'required_with:password|same:password|min:6'
]);

这在Laravel 5.2应用程序中运行良好,但在5.4应用程序中不起作用。

image

这里有什么问题,或者如果设置了passwordpassword字段,只需要password_confirmation的正确方法是什么?

8 个答案:

答案 0 :(得分:50)

您可以使用confirmed验证规则。

$this->validate($request, [
    'name' => 'required|min:3|max:50',
    'email' => 'email',
    'vat_number' => 'max:13',
    'password' => 'required|confirmed|min:6',
]);

答案 1 :(得分:19)

尝试这样做,它对我有用:

$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'min:6|required_with:password_confirmation|same:password_confirmation',
'password_confirmation' => 'min:6'
]);`

似乎规则总是对对中的第一个输入进行验证...

答案 2 :(得分:7)

尝试确认并且没有password_confirmation规则:

$this->validate($request, [
        'name' => 'required|min:3|max:50',
        'email' => 'email',
        'vat_number' => 'max:13',
        'password' => 'confirmed|min:6',
    ]);

答案 3 :(得分:3)

试试这个:

'password' => 'required|min:6|confirmed',
'password_confirmation' => 'required|min:6'

答案 4 :(得分:2)

我已经用过这种方式..工作正常!

 $inputs = request()->validate([
        'name' => 'required | min:6 | max: 20',
        'email' => 'required',
        'password' => 'required| min:4| max:7 |confirmed',
        'password_confirmation' => 'required| min:4'
  ]);

答案 5 :(得分:1)

我以这种方式使用。工作正常!

$rules = [

            'password' => [

                    'required',

                    'string',

                    'min:6',

                'max:12',             // must be at least 8 characters in length

                ],

            'confirm_password' => 'required|same:password|min:6'

        ];

答案 6 :(得分:0)

这应该足够:

$this->validate($request, [
    'password' => 'nullable,min:6,confirmed',
]);

将密码设置为可选,但是如果存在,则需要匹配的password_confirmation

答案 7 :(得分:0)

您可以这样使用来检查密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符:

$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'password' => 'required|confirmed|min:6|regex:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{6,}$/']);