Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何有条件地验证Laravel 7中的数组输入?_Php_Laravel_Laravel 7 - Fatal编程技术网

Php 如何有条件地验证Laravel 7中的数组输入?

Php 如何有条件地验证Laravel 7中的数组输入?,php,laravel,laravel-7,Php,Laravel,Laravel 7,我试图有条件地验证Laravel中的数组输入。我遵循提供的文件。但是文档没有提供如何在数组输入上执行此操作的详细信息。下面是我正在尝试的代码 $rule = [ 'report.*' => 'max:255', 'comment.*' => 'exclude_if:report.*,file|max:65535' ]; $validator = Validator::make($array, $rule)

我试图有条件地验证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中实现这一点?

如果需要,您是否尝试过

我认为你们必须写“报告”而不是“文件”,因为你们的输入名是“报告”


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

我可以使用下面的代码来完成

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

我认为您应该在这里使用自定义规则,只需大声思考,但可能会将结构更改为类似于
report[0][file]
report[0][comment]
。足够接近了!我用了“不需要”这个词,效果很好必填_if'用于检查是否存在其他字段。谢谢你的帮助。