我正在尝试应用此问题中提供的建议如何在 Laravel 中验证数组?
所以我的验证是
'topics' => 'required|array'
主题为必填项
这非常有效,特别是当主题是大于 1 的数组时
不幸的是我传递了
[]
一个空数组,验证失败了
如何验证输入是一个数组,它不为空并且允许空数组?
以下尝试失败
'topics' => 'required|array|min:0',
主题为必填项
下面的工作,问题是甚至允许空值
'topics' => 'array',
来自 Laravel 文档:
验证基于数组的表单输入字段并不一定很痛苦。 您可以使用“点表示法”来验证数组中的属性。为了 例如,如果传入的 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.