我正在Laravel
写一个请求验证器,我有以下条件。要检查给出的密码是否相同,这将失败,并显示密码不相同的消息,即使密码相同。
'password1' => 'string',
'password2' => 'string|same: password1'
如果我禁用了验证并dd(Input::only('password1','password2'));
,它将打印出以下内容。
array:2 [
"password1" => "123"
"password2" => "123"
]
为什么same
验证不起作用?
答案 0 :(得分:2)
您的问题是验证规则中的空格。您的输入中没有名为[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',