如何验证 Laravel 中的数组

How to Validate an array in Laravel

我正在尝试应用此问题中提供的建议

所以我的验证是

'topics' => 'required|array'

Topics are required

这很有效,尤其是当主题是一个大于 1 的数组时

不幸的是我传递 [] 一个空数组验证失败

如何验证输入是一个数组,它不是 null 并且允许空数组?

以下尝试失败

 'topics' => 'required|array|min:0',

Topics are required

下面的工作,问题是甚至允许空值

 'topics' => 'array',

验证基于数组的表单输入字段并不一定很痛苦。您可以使用“点符号”来验证数组中的属性。例如,如果传入的 HTTP 请求包含一个 photos[profile] 字段,您可以像这样验证它:

use Illuminate\Support\Facades\Validator;

$validator = Validator::make($request->all(), [
    'photos.profile' => 'required|image',
]);

您还可以验证数组的每个元素。例如,要验证给定数组输入字段中的每封电子邮件都是唯一的,您可以执行以下操作:

$validator = Validator::make($request->all(), [
    'person.*.email' => 'email|unique:users',
    'person.*.first_name' => 'required_with:person.*.last_name',
]);

在您的情况下,如果您想验证数组中的元素不为空,则以下内容就足够了:

'topics' => 'required|array',
'topics.*' => 'sometimes|integer', // <- for example.

你可以使用present验证

验证字段必须存在于输入数据中,但可以为空。

 'topics' => 'present|array'