php - Laravel 'sometimes' 验证器因嵌套数组而失败

标签 php laravel laravel-validation

我正在使用 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 当且仅当它出现在数组中时才应该被验证。但目前 Validatordepartment_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/

相关文章:

php - Symfony2 : Getting Route in Page Load Event Listener

php - mysqli::$affected_rows 和 mysqli_stmt::$affected_rows 有什么区别?

php - Laravel 4 Eloquent 按关系日期分组

Php Laravel 5.1-无法与主机 smtp.gmail.com 建立连接 [Connection refused #111]

Laravel cron 不执行 PHP 脚本

php - 带有 "sometimes"规则的 Laravel Validator 自定义消息

php - 如何在 Laravel 验证失败和通过验证时创建回调?

php - mysql,如何从数据库中删除选定的数据?

php - 如何在没有要验证的特定属性的情况下验证发布请求

php - 在php中显示表中的数据