如何在Laravel 7中有条件地验证数组输入



我正在尝试有条件地验证Laravel中的数组输入。我遵循此处提供的文档。但是该文档没有提供如何对数组输入执行此操作的详细信息。下面是我正在尝试的代码

$rule = [
'report.*' => 'max:255',
'comment.*' => 'exclude_if:report.*,file|max:65535'
];
$validator = Validator::make($array, $rule);

这里的报告是一个文件输入,注释是一个文本区域字段。

<input type="file" name="report[0]"/>
<input type="file" name="report[1]"/>
<textarea name="comment[0]"></textarea>
<textarea name="comment[1]"></textarea>

如果相应的文件输入为空,则需要注释字段。我如何在Laravel 7中实现这一点?

是否尝试required_if?

我认为你必须写";报告";而不是";文件";因为您的输入名称是report。

如果这不起作用,也许你需要制定一个自定义规则。

我能够使用下面的代码来完成它。

$rule = [
'report.*' => 'max:255',
'comment.*' => 'required_without:report.*|max:65535'
];
$validator = Validator::make($array, $rule);

最新更新