【发布时间】:2019-08-07 06:41:21
【问题描述】:
我在 Laravel 5.7 中验证一个数组,但是当我预计它失败时验证器通过了。
$validator = Validator::make($request->all(), [
'user_reg_email' => 'required|max:255|email|exists:users,email',
'service_start_date' => 'required|before_or_equal:today',
'service_end_date' => 'nullable|after:service_start_date',
'role' => 'array|min:1|unique:provider_user,role,NULL,id,user_email,' . $request->user_reg_email . ',provider_domain,' . $request->prov,
]);
payload如下:
{
_token: "d5VYhirRAn3Zb9bCKHKQiuLNXkHfEP4hEs0bAZvj",
prov: "email.com",
user_reg_email: "john@email.com",
service_start_date: "2019-03-03",
service_end_date: null,
role: [
null
],
}
角色验证通过,但我预计它会失败。如何获得预期的结果?
【问题讨论】:
-
你验证它到底是为了什么?
-
表主键由'provider_domain'、'user_email'和'role'组成,需要唯一。此验证工作正常。当它应该失败时通过的部分是'array | min:1'。当您传递一个 NULL 数组时,这应该会失败。
-
我认为使用所需的验证应该可以解决问题。否则尝试使用验证器进行自定义验证
标签: arrays laravel validation