我已经为我的请求提供了基本的laravel验证器:
$validator = Validator::make($request->all(), [
'speciality' => 'required|array|min:1',
]);
if ($validator->fails()) {
return response([
'status' => 'error',
'error' => 'invalid.credentials',
'message' => 'error validation'
], 400);
}
特殊性应该是一个数组,因此我将其定义为required|array|min:1
问题是当我的请求包含一个内部为null的空数组:speciality: [ null ]
时,它以某种方式通过了我的验证器。
我如何更正它以适应这种情况?
答案 0 :(得分:4)
使用点访问基础元素/值:
$validator = Validator::make($request->all(), [
'speciality' => 'required|array|min:1',
'speciality.*' => 'required' //ensures its not null
]);
请参阅文档的Validation: Validating Arrays部分。
请注意,[null]
不在empty
数组中,这就是通过初始验证的原因。您可以验证此操作:
dd(empty([null]));
这将输出:
false