如何解决在 Laravel 验证中通过 required_unless 时如何保释
我有一个包含这 3 个输入的表单:
- 名为“room1”的文本输入
- 一个复选框,如:“☑ 我不需要房间 2”并命名为“oneroom”
- 名为“room2”的文本输入
默认情况下,用户需要输入两个房间。但是当复选框被选中时,我不需要在 required_if:oneroom,null
之后检查房间 2 的任何其他规则。我到目前为止的代码:
$validated = $request->validate([
'room1' => array('required','min:3'),'room2' => array('bail','required_if:oneclass,null','min:3',),]);
*为了这个问题,这个代码被简化了。原始表单有更多字段存在相同问题
当复选框被选中并且 room2 为空时,required_if
规则被通过,因此它不会保释并检查 min:3
。但此时我需要 Laravel 保释而不是检查 min:3
。当复选框未被选中时,它会做它应该做的事情并产生错误,说如果一个房间没有被选中,房间 2 不能为空
有没有什么方法可以实现我想要做的事情,而无需验证规则之外的任何额外代码?
如果您需要我澄清问题,请发表评论
解决方法
使用这个:
'room2' => array('exclude_if:oneclass,value','min:3')
(用 html 中设置的任何值替换 value)。这将从验证中排除 room2,并且不会根据任何附加规则生成任何错误消息。 Documentation
,试试这个
$request->validate([
'room1' => array('required','min:3'),'room2' => array('bail','required_without:oneclass','min:3','nullable'),]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。