Laravel表单验证使用bail规则仍继续校验问题求助
问题原因分析
- Laravel的
bail规则仅对当前字段的验证规则序列生效:你给account_request_id加了bail,只会让这个字段自身的验证在第一个失败项(比如AccountRequestExist验证不通过)时停止,但不会中断其他字段(比如account)的验证流程。 - 你的
ValidateAccountGrantQuantity($this)自定义规则依赖了请求实例本身,不管account_request_id是否验证失败,这个规则都会被执行,所以会触发对应的错误提示。
如果要实现「account_request_id验证失败就终止所有验证」的效果,可以这么做:
- 在表单请求的
withValidator方法里手动判断,一旦account_request_id验证失败,就调用$validator->stopOnFirstFailure(),或者直接添加自定义逻辑终止后续验证。 - 或者把
account字段的验证逻辑和account_request_id的验证绑定,比如在AccountRequestExist规则通过后才触发account字段的验证。
内容的提问来源于stack exchange,提问作者JKSDS
相关产品推荐
相关产品推荐

