Php 如何制作Laravel';确认';验证程序是否将错误添加到确认字段?

Php 如何制作Laravel';确认';验证程序是否将错误添加到确认字段?,php,validation,laravel,Php,Validation,Laravel,默认情况下,Laravel“确认”验证器将错误消息添加到原始字段,而不是添加到通常包含确认值的字段 'password' => 'required|confirmed|min:8', 是否有任何简单的方法来扩展验证器,或者使用一些技巧迫使它总是在确认字段而不是原始字段上显示错误? 如果我两次未能输入密码,则错误似乎更适合属于确认字段而不是原始密码字段。或者这可能只是我们的用户体验分析师变得挑剔…一个很快浮现在脑海中的解决方案就是在密码确认字段上显示密码错误 如果这对您不起作用,只需将pa

默认情况下,Laravel“确认”验证器将错误消息添加到原始字段,而不是添加到通常包含确认值的字段

'password' => 'required|confirmed|min:8',
是否有任何简单的方法来扩展验证器,或者使用一些技巧迫使它总是在确认字段而不是原始字段上显示错误?


如果我两次未能输入密码,则错误似乎更适合属于确认字段而不是原始密码字段。或者这可能只是我们的用户体验分析师变得挑剔…

一个很快浮现在脑海中的解决方案就是在
密码确认
字段上显示
密码
错误

如果这对您不起作用,只需将
password\u confirmation
字段标记为password,将
password
字段标记为password confirmation,这样,如果出现错误,它将显示在
password\u confirmation
标签附近,而不是
password
标签附近


否则,添加您自己的自定义验证方法并不困难。

一种方法是使用
相同的
规则,而不是
已确认的

/。。。
$input=input::all();
$rules=[
“密码”=>“必需”|最小值:8',
“密码确认”=>“必需”|最小值:8 |相同:密码”,
];
$messages=[
'密码确认。相同'=>'密码确认应与密码匹配',
];
$validator=validator::make($input、$rules、$messages);
如果($validator->fails()){
return back()->withInput()->withErrors($validator->messages());
}
// ...

您应该按照以下方式设计表单

<input type="password" name="password">
<input type="password" name="password_confirmation">

为什么它属于哪个领域很重要?您不能自动填充密码字段(或者至少不应该),因此只说密码不匹配就可以了?我们的UI在特定字段上显示了验证消息作为工具提示,因此在更合理的位置显示消息非常重要。谢谢。有时,Laravel令人困惑,因为它可能以不同的方式获得类似的结果<代码>相同的比确认的更具可定制性,但错误消息将显示在哪里?在您的解决方案中,似乎错误消息将显示在密码输入字段下而不是确认字段下,这就是问题所在,因为这会导致用户混淆。如果密码和密码确认不匹配,则显示错误消息的位置并不重要。因为您不知道哪个字段是所需的密码。验证的重点是两个字段的密码相同。我们的质量保证人员不同意这一点。他坚持认为,如果错误信息显示“密码确认与密码不匹配”,则应显示在确认字段下,而不是密码字段下。我想,这是主观的,但我有点明白他的意思——错误的是确认,而不是密码。
<input type="password" name="password">
<input type="password" name="password_confirmation">
$request->validate([
        "password" => 'required|confirmed' 
    ]);