验证阵列Laravel 5

时间:2015-04-29 19:07:44

标签: php validation laravel-5

我的ajax脚本发送这样的数组: 此数组属于Input::get('questions')

 Array
(
    [0] => Array
        (
            [name] => fields[]
            [value] => test1
        )

    [1] => Array
        (
            [name] => fields[]
            [value] => test2
        )

)

在html中,用户可以添加多个fields

你能帮助我吗?我需要这样的东西:

           $inputs = array(
                'fields'    => Input::get('questions')
            );

            $rules = array(
                'fields'    => 'required'
            );
            $validator = Validator::make($inputs,$rules);

                if($validator -> fails()){
                    print_r($validator -> messages() ->all());
                }else{
                    return 'success';
                }

1 个答案:

答案 0 :(得分:0)

阵列元素的Laravel自定义验证

打开以下文件

/resources/lang/en/validation.php

然后自定义消息添加

'numericarray'         => 'The :attribute must be numeric array value.',
'requiredarray'        => 'The :attribute must required all element.',

这样,打开另一个文件

/app/Providers/AppServiceProvider.php

现在使用以下代码替换启动功能代码。

public function boot()
{
    // it is for integer type array checking.
    $this->app['validator']->extend('numericarray', function ($attribute, $value, $parameters)
    {
        foreach ($value as $v) {
            if (!is_int($v)) {
                return false;
            }
        }
        return true;
    });

   // it is for integer type element required.
   $this->app['validator']->extend('requiredarray', function ($attribute, $value, $parameters)
    {
        foreach ($value as $v) {
            if(empty($v)){
                return false;
            }
        }
        return true;
    });
}

现在可以将 requiredarray 用于所需的数组元素。并且还使用 numericarray 进行数组元素整数类型检查。

$this->validate($request, [
            'arrayName1' => 'requiredarray',
            'arrayName2' => 'numericarray'
        ]);