具有动态文件输入的验证规则

Validation rules with dynamic file inputs

提问人:Duddy67 提问时间:9/24/2023 最后编辑:jonrsharpeDuddy67 更新时间:9/24/2023 访问量:61

问:

“我的表单”允许用户添加字段以动态上传文件。

<input type="file" name="your_file_{{ $i }}" id="your_file_{{ $i }}">

因此,它会生成输入名称,例如:、、...your_file_1your_file_2

现在我想通过验证规则使这些字段成为必填字段,但我找不到这样做的方法。 我尝试使用通配符,但它不起作用。

$rules['your_file_*'] = 'required|mimes:pdf,doc,docx,png,jpg,jpeg|max:10000';

有什么想法吗?

Laravel 验证

评论

0赞 Tim Lewis 9/25/2023
不要使用,使用。然后,你就可以做.name="your_file_{{ $i }}"name="your_files[]"['your_files' => 'array|required', 'your_files.*' => 'mimes:...|max:10000']

答:

-1赞 timgavin 9/24/2023 #1

若要指定通配符规则,请使用点语法:.*

$rules = [
    'your_file_.*' => 'required|mimes:pdf,doc,docx,png,jpg,jpeg|max:10000'
];

评论

0赞 Duddy67 9/24/2023
我已经试过了。这是行不通的。
1赞 Herrys Aghista Rachman 9/24/2023 #2
for($i = 1; $i <= count($request->all()) - 1; $i++) {
    $validate_array['var'. $i] = 'required';
}

$this->validate($request, $validate_array );

-1 用于 POST 中的令牌 CSRF,总循环仅用于 dinamic 输入。

Laravel验证中的For 循环

这里供参考

评论

1赞 Tim Lewis 9/25/2023
count($request->all()) - 1那会起作用,但你也可以做.如果 CSRF 检查中省略了此路由,并且未包含此路由,则您的代码将出现问题。count($request()->except('_token'))_token
0赞 Herrys Aghista Rachman 9/25/2023
好的,谢谢你的提示。