如何验证整个请求是 Laravel 中的一个数组?

Posted

技术标签:

【中文标题】如何验证整个请求是 Laravel 中的一个数组?【英文标题】:How to validate whole request is an array in Laravel? 【发布时间】:2020-11-19 02:57:48 【问题描述】:

我需要验证请求的 JSON 正文,它必须是一个数组。

我知道我可以像这样将单个字段验证为数组:

$request->validate([
    'name' => ['required', 'array'],
]);

但是我怎样才能验证整个请求是一个数组而不是一个对象呢?

【问题讨论】:

为什么要验证一切都是数组?只是当您向服务器发送请求时,您必须为您发送的内容命名。例如name=Johnemail=john@mail.com,如果你想发送数组中的所有内容,它必须是array[]=value1array[]=value2,然后在后端$request->array,并验证array parameterarray跨度> 【参考方案1】:

您可以使用中间件检查原始请求正文。 request()->all() 将始终返回数组。

【讨论】:

你的意思是检查$request->all()是否返回一个数组?因为all() 总是会返回一个数组,即使请求是一个对象。

以上是关于如何验证整个请求是 Laravel 中的一个数组?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 - 根据需要验证数组,但允许传递一个空数组

如何使用请求验证 Laravel 中的数组?

如何验证 Laravel 中的每个数组索引

如何验证 laravel 中的复选框数组?

Vuejs Laravel 验证输入数组

Laravel 验证:必须是带有“json”规则的有效 JSON 字符串