编程语言
首页 > 编程语言> > php – Laravel’有时’验证器因嵌套数组而失败

php – Laravel’有时’验证器因嵌套数组而失败

作者:互联网

我使用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,laravel-validation
来源: https://codeday.me/bug/20190708/1405404.html