如何在Laravel中验证一个数组

6 浏览
0 Comments

如何在Laravel中验证一个数组

我正在尝试应用这个问题中提供的建议如何在Laravel中验证数组?\n所以我的验证规则是\n

'topics' => 'required|array'

\n

\n主题是必需的\n

\n这个验证规则在topics是一个大于1的数组时运行良好\n但是,如果我传递[]一个空数组,验证将失败\n我该如何验证输入是一个数组,不是空值,并且允许空数组?\n以下尝试失败\n

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

\n

\n主题是必需的\n

\n以下规则可以工作,问题是即使允许空值\n

 'topics' => 'array',

0
0 Comments

如何在Laravel中验证数组

在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', // <- 举个例子。

感谢您的答案,我从您的答案中学到了如何验证每个单独的元素,但我的问题不是单个元素。问题是null被验证为可接受的,但如果我添加了required验证,即使是空数组,验证也会失败。

简单来说,我希望有一种方法来验证请求不为空,并且请求要么是一个空数组,要么是一个有值的数组。

在关于照片的示例中,有一种解决方案,不过我已经更新了您特定情况下的答案。

0
0 Comments

在Laravel中,我们可以使用"present"验证来验证一个数组。该验证规则要求输入数据中的字段必须存在,但可以为空。具体使用方法如下:

'topics' => 'present|array'

需要注意的是,如果没有使用"ConvertEmptyStringsToNull"中间件,空字符串仍然可以通过验证。你可以在这个链接中了解更多详情:[github.com/laravel/framework/issues/18948](https://github.com/laravel/framework/issues/18948)。

感谢提供这个信息,我之前并不知道这一点。

0