如何在Laravel中验证一个数组
如何在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',
如何在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
验证,即使是空数组,验证也会失败。
简单来说,我希望有一种方法来验证请求不为空,并且请求要么是一个空数组,要么是一个有值的数组。
在关于照片的示例中,有一种解决方案,不过我已经更新了您特定情况下的答案。