Laravel 验证数组的元素

Laravel 验证数组的元素,laravel,laravel-4,laravel-validation,Laravel,Laravel 4,Laravel Validation,我有一个元素的输入数组,它被传递给控制器。到目前为止,我已经检查了数据是否存在,是否为“数组”类型,是否至少有1个元素 $validator = Validator::make($data, [ 'option' => 'required|array|min:1' ]); 但是现在我想确保数组中的所有元素都不是emtpy(例如字符串”或空格”。我无法预测数组将有多少个元素 如何实现这一点?您可以使用自定义验证规则 类似这样的内容: Validator::extend('array_not

我有一个元素的输入数组,它被传递给控制器。到目前为止,我已经检查了数据是否存在,是否为“数组”类型,是否至少有1个元素

$validator = Validator::make($data, [ 'option' => 'required|array|min:1' ]);
但是现在我想确保数组中的所有元素都不是emtpy(例如字符串
或空格
。我无法预测数组将有多少个元素


如何实现这一点?

您可以使用自定义验证规则

类似这样的内容:

Validator::extend('array_not_whitespace', function($attribute, $value, $parameters)
{
    foreach($value as $entry)
    {
        if (strlen(trim($entry)) == 0)
           return false;
    }
    return true;
});

$validator = Validator::make($data, [ 'option' => 'required|array_not_whitespace|min:1' ]);

实际上,如果没有
trim
,您甚至不需要检查
strlen
strlen(trim($entry))==0将涵盖所有内容。