php - 在 Laravel 验证中通过 required_unless 时如何保释
问题描述
我有一个包含这 3 个输入的表单:
- 一个名为“room1”的文本输入
- 一个复选框,例如:“☑我不需要房间 2”并命名为“oneroom”
- 一个名为“room2”的文本输入
默认情况下,用户需要输入两个房间。但是当复选框被选中时,我不需要在required_if:oneroom,null
. 我到目前为止的代码:
$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
。当未选中该复选框时,它会执行应有的操作并生成错误,指出如果未选中一个房间,则 room2 不能为空
有什么方法可以实现我正在尝试做的事情,而无需验证规则之外的任何其他代码?
如果您需要我澄清问题,请发表评论
解决方案
用这个:
'room2' => array('exclude_if:oneclass,value', 'min:3')
(用 html 中设置的任何值替换值)。这将从验证中排除 room2,并且不会根据任何其他规则生成任何错误消息。文档
推荐阅读
- python - 生存分析生命线包中审查事件的持续时间
- javascript - 使用 nodeJS 和 express 接收松弛模态提交时出现 404
- google-apps-script - 如何在 Google Apps 脚本中的导出库中传递项目授权
- html - Muli 字体未正确渲染
- laravel - 带有连接查询的 Laravel Scope
- python - Python Logger 记录两次
- oracle - 在 WHERE 子句中使用 CASE 语句 - PL/SQL
- javascript - 我怎样才能在中心获得“滚动”按钮?
- javascript - CSS显示时的布局变化:从block变为none后从none变为block
- powershell - 当字符串包含反引号时,Like 运算符返回 false