Laravel 4表单验证,输入值为数组

jre*_*121 4 php validation laravel-4

我的所有表单字段在其名称中都有括号,以便按父级对它们进行分组,并将它们标识为重复元素,例如:fieldName_01[0][0].当然,这使得经常使用Laravel的Validator类是不可能的,因为它会引发错误,引用它不期望数组.这种命名惯例是常见的做法,因此这不是一个罕见的问题.

我已经看到了其他几个类似的问题(这里和这里),但我似乎无法理解它们(Laravel noob),或者我只是不知道如何/在何处实施解决方案.在这个答案中,我将在哪里创建这个扩展类?我如何告诉Laravel将其包含在我的项目中?

我的元素示例:

<div class="form-group col-sm-4'}}">
    {{ Form::label('fieldName_01[0][0]', 'My Element', array('class'=>'col-sm-3'))}}
    <div class="col-sm-7 col-md-6 recurringField">
    {{ Form::text('fieldName_01[0][0]', null, array(
        'class'=>'form-control input-md',
        'placeholder'=>'My Element',
        'data-element-code' => '',
        'data-recur-group' => 'fieldName_01',
        'id'=>'fieldName_01[0][0]',
        'data-fkey' => '0',
        'data-pkey' => '0'
    )) }}
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的规则示例:

'fieldName_01'=>'required|alpha_num|between:2,255'
Run Code Online (Sandbox Code Playgroud)

我如何调用验证器的示例:

$input = Input::all();
$validator = Validator::make($input, $this->rules);
Run Code Online (Sandbox Code Playgroud)

maj*_*rif 8

根据文件:

处理带有"数组"输入的表单时,您可以使用点表示法来访问数组:

(警告未经测试的代码)

如果你有类似的东西user[first_name]:

'user.first_name' => 'required|between:2,28'
Run Code Online (Sandbox Code Playgroud)

你可以处理任何错误:

$errors->first('user.first_name');
Run Code Online (Sandbox Code Playgroud)

因此,对于您的问题,您可以验证fieldName_01[0][0]如下:

'fieldName_01.0.0' => 'required|alpha_num|between:2,255'
Run Code Online (Sandbox Code Playgroud)