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',
我正在 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',