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

Laravel密码与确认密码输入一致仍提示不匹配该如何解决?

问题根因

校验规则不生效的核心原因是前端Blade模板的确认密码字段属性拼写错误,和后端校验规则的字段名不匹配。

具体错误点

  • 确认密码输入框的name属性拼写错误:你写的是passsword_confirmation(多了1个s),和控制器校验规则里指定的password_confirmation不一致,后端无法接收到正确的确认密码参数,导致匹配校验一直失败。
  • 额外小问题:确认密码输入框的id属性误写为password,和密码输入框id重复,同时和label的for属性值不匹配,会导致点击label无法正常聚焦到确认密码输入框。

修复方案

  1. 修正Blade模板中确认密码字段的属性,修正后代码如下:
<div class="mb-4">
    <label for="password_confirmation" class="sr-only">确认密码</label>
    <input type="password" name="password_confirmation" id="password_confirmation" placeholder="请重复输入密码"
        class="bg-gray-100 border-2 w-full p-4 rounded-lg" value="">
</div>
  1. (可选优化)控制器中的密码校验可以直接使用Laravel内置的confirmed规则,写法更简洁,无需手动指定匹配字段,只要前端确认密码字段命名为{字段名}_confirmation即可自动校验:
// 原规则
'password' => 'required|same:password_confirmation',
// 优化后
'password' => 'required|confirmed',

另外你当前的name字段校验规则里加了distinct规则,这个规则仅用于校验数组参数内部的值是否重复,对单值字段无效,没有需求可以删除该规则。

内容的提问来源于stack exchange,提问作者prasun regmi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:45:04