Laravel密码和密码_确认验证

Sca*_*olf 35 passwords validation laravel

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

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

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

图片

这里有什么问题,或者只有在设置passwordpassword或者password_confirmation字段时才能生成所需的正确方法是什么?

Nea*_*bfi 71

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

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

  • 最新 Laravel 7.x 的 `confirmed` 验证规则 https://laravel.com/docs/7.x/validation#rule-confirmed (3认同)
  • 对于那些无法完成这项工作的人,请使用此链接进行文档编制。https://laravel.com/docs/5.7/validation#rule-confirmed (2认同)

ome*_*tai 29

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

$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'
]);`
Run Code Online (Sandbox Code Playgroud)

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

  • 实际上,“same:password”规则应该在“password_confirmation”中,而不是“password”中 (4认同)

Odi*_*der 8

尝试这个:

'password' => 'required|min:6|confirmed',
'password_confirmation' => 'required|min:6'
Run Code Online (Sandbox Code Playgroud)

  • 不需要`'password_confirmation' => 'required|min:6' ` (3认同)
  • 它不是必需的,因为它会自动验证确认密码, (2认同)

dpa*_*oli 7

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

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

  • 来自 Laravel 5.4 文档:`confirmed` `验证中的字段必须具有匹配的 foo_confirmation 字段。例如,如果验证的字段是密码,则输入中必须存在匹配的 password_confirmation 字段。`,其中匹配意味着该字段存在且相同 (2认同)

小智 6

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

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


小智 6

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

$rules = [

            'password' => [

                    'required',

                    'string',

                    'min:6',

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

                ],

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

        ];
Run Code Online (Sandbox Code Playgroud)


Dhi*_*lah 5

在 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',*
    ]);
Run Code Online (Sandbox Code Playgroud)

笔记:

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

  • name="password_confirmation"另外,在确认密码文本输入框中添加一个属性,它就会起作用。

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

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

干杯...