【问题标题】:How to conditionally validate an array input in Laravel 7?如何有条件地验证 Laravel 7 中的数组输入?
【发布时间】:2020-09-09 06:40:28
【问题描述】:

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

$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 中实现这一点?

【问题讨论】:

标签: php laravel laravel-7


【解决方案1】:

你尝试过 required_if 吗?

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

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

【讨论】:

  • 够近了!我使用了“required_without”,它奏效了。 'required_if' 用于检查其他字段是否存在。感谢您的帮助。
【解决方案2】:

我可以使用下面的代码做到这一点。

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

【讨论】:

    猜你喜欢
    • 2017-11-13
    • 2014-09-20
    • 2021-12-07
    • 2021-03-06
    • 2016-07-22
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多