Laravel 验证没有按预期工作

Laravel Validation Same not Working as intended

我正在 Laravel 中编写一个请求验证程序,其中我有以下条件。要检查给定的密码是否相同,这将失败,并显示密码不相同的消息,即使密码相同。

'password1' => 'string',
'password2' => 'string|same: password1'

如果我禁用验证和 dd(Input::only('password1','password2'));,它将打印出以下内容。

array:2 [
    "password1" => "123"
    "password2" => "123"
]

为什么 same 验证不起作用?

您的问题是验证规则中的 space。您的输入中没有名为 [space]password1 的字段,因此验证失败。而不是 same: password1,它应该是 same:password1.

'password1' => 'string',
'password2' => 'string|same:password1'

通常完成密码确认的另一种方法是 confirmed 验证。通常,您有一个 password 字段和一个 password_confirmation 字段,然后 confirmed 验证将验证您的 password 输入是否具有来自 *_confirmation 字段的匹配输入。

'password' => 'string|confirmed',
'password_confirmation' => 'string',