You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel密码匹配报错咨询:后端验证规则问题排查

Laravel密码验证「不匹配」问题排查

嘿,作为Laravel新手遇到这个问题很正常,我来帮你定位核心原因——你用的confirmed验证规则和表单字段名不匹配,导致Laravel找不到对应的匹配字段,所以哪怕输入正确密码也会提示验证失败。

先给你拆解下confirmed规则的默认逻辑:Laravel的confirmed规则会自动寻找一个名为{原字段名}_confirmation的输入字段,比如你的密码字段叫Password,它就会去找Password_confirmation这个字段做匹配验证,但你的确认密码字段叫C_Password,Laravel找不到对应字段,直接判定验证失败。

给你两种解决方案,选哪种都可以:

方案一:遵循Laravel默认约定(推荐)

这种方式更符合Laravel的设计规范,后续维护更省心:

  1. 修改Blade模板里的确认密码输入框,把name属性改成Password_confirmation:
<div class="">
    <input class="input--style-1 text-success form-control pl-3" type="password" placeholder="Confirm_Password" name="Password_confirmation">
    <span class="text-danger font-italic" >{{$errors->first('Password_confirmation')}}</span>
</div><br>
  1. 调整DonorRequest.php里的验证规则,给Password字段加上confirmed规则,同时删掉C_Password的验证规则:
public function rules() {
    return [
        'Name'=>'required|min:2|max:20|alpha_dash',
        'Blood_Group'=>'required',
        'Email'=>'required|Email:rfc,dns',
        'Contact'=>'required|numeric',
        'Gender'=>'required',
        'Location'=>'required',
        'Password'=>'required|min:6|confirmed', // 新增confirmed规则
    ];
}

这样Laravel会自动帮你验证Password和Password_confirmation的一致性,不用额外写确认密码的规则。

方案二:保留现有字段名,用same规则替代

如果你不想修改字段名,也可以用same规则直接指定要匹配的字段:
修改DonorRequest.php里C_Password的规则,把confirmed换成same:Password:

public function rules() {
    return [
        'Name'=>'required|min:2|max:20|alpha_dash',
        'Blood_Group'=>'required',
        'Email'=>'required|Email:rfc,dns',
        'Contact'=>'required|numeric',
        'Gender'=>'required',
        'Location'=>'required',
        'Password'=>'required|min:6',
        'C_Password'=>'required|min:6|same:Password', // 用same规则指定匹配Password字段
    ];
}

这个规则会直接校验C_Password的值和Password是否完全相同,不需要遵循默认的字段名约定。

另外再提醒你一句:提交表单时确保两个密码字段都正常被提交,没有被前端的JS代码或者其他逻辑意外拦截哦。

内容的提问来源于stack exchange,提问作者Mohammad Kashif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 21:34:07