繁体   English   中英

Laravel 密码 & Password_Confirmation 验证

[英]Laravel Password & Password_Confirmation Validation

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

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

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

图片

这里有什么问题,或者如果设置了passwordpassword_confirmation字段,那么只有在设置password的正确方法是什么?

您可以使用已确认的验证规则。

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

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

$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'
]);`

似乎该规则始终对对中的第一个输入进行验证...

尝试这个:

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

尝试确认且没有 password_confirmation 规则:

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

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

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

我用过这种方式。 它工作正常!

$rules = [

            'password' => [

                    'required',

                    'string',

                    'min:6',

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

                ],

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

        ];

应该足够了:

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

使密码可选,但如果存在需要匹配的密码确认,也仅在存在密码确认时才需要密码

在 Laravel 9 中非常容易

对于 Laravel 9.x,这里是链接: https://laravel.com/docs/9.x/validation#rule-confirmed下面的代码对我有用:

public function store(){
    $signUp = request()->validate([
        'student_email' => 'required|email|max:255',
        *'password' => 'required|confirmed|min:7|max:255',*
    ]);

笔记:

在您的 form.blade 中,确保密码输入字段的名称属性为name="password" ->它必须是 password

  • 另外,在Confirm Password 文本输入框中添加name="password_confirmation"的属性,它就会起作用。

  • 这减少了商店的表单请求验证方法中的代码。

  • 并且无需将Password_confirmation名称属性添加到控制器中的验证请求方法中。

干杯...

您可以像这样使用检查密码包含至少 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,}$/']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM