我正在使用 Laravel Validator
类对数组进行一些基本验证。
我的数组:
$employee['name']='name';
$employee['address']='address';
$employee['department']['department_name']='deptname';
$employee['department']['department_address']='deptaddress';
我有如下验证规则:
$rules = array(
'name'=> 'required',
'address' => 'required',
'department.department_name' => 'sometimes|required'
)
自定义消息如下:
$messages = array(
'name.required' => 'Employee Name is required',
'address.required' => 'Address is required'
'department.department_name.required' => 'Department name is required'
)
我将使用 Validator::make($employee, $rules, $messages);
根据我的规则,department_name
当且仅当它出现在数组中时才应该被验证。但目前 Validator
在 department_name
存在且为空时不对其进行验证。知道我可能做错了什么吗?
最佳答案
你在这里有点不对劲,看docs这里
那里提到如果我有 $photos['profile']
那么我的验证将像这样进行
$validator = Validator::make($request->all(), [
'photos.profile' => 'required|image',
]);
从上面的例子来看,在你的情况下应该是这样的
$rules = array(
'name'=> 'required',
'address' => 'required',
'employee.department.department_name' => 'sometimes|required'
)
因为你有这样的数组 $employee['department']['department_name']
$message
也是这样
$messages = array(
'name.required' => 'Employee Name is required',
'address.required' => 'Address is required'
'employee.department.department_name.required' => 'Department name is required'
)
关于php - Laravel 'sometimes' 验证器因嵌套数组而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22892058/