在Laravel表单中验证动态字段

3

我无法使用Laravel 5.2验证这个表单,这是我的代码:

我的视图:

@for ($i=0; $i < 2; $i++)
    {!! Form::control('text', 0, "items[$i]", $errors, trans('back/blog.content')) !!}
@endfor

我的验证:

public function rules()
{
    $rules = [
        'title' => 'required|max:255',
        'summary' => 'required|max:65000',
        'content' => 'required|max:65000',
    ];
    foreach($this->request->get('items') as $key => $val) {
        $rules['items['.$key.']'] = 'required|max:10';
    }
    return  $rules;
}
1个回答

4
如果您正在使用 Laravel 5.2,您可以验证一个数组。
$validator = Validator::make($request->all(), [
'items.*' => 'required'
]);

详细信息请参考https://laravel.com/docs/5.2/releases

如果您使用的版本低于5.2,可以按照以下方式操作

$v = Validator::make($request->all(), $rules);

$v->each('items', ['required']);

谢谢回复,但我没有使用Validator :: make(),而是使用rules()函数的扩展...我已经尝试了您的建议,但不起作用。 - Jonas Sciangula Street
使用验证或者其他东西都不是什么大问题,我给了你一个数组的例子,你可以在任何 $rules 或其他东西中使用 'items.*' => 'required'。 - Imtiaz Pabel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接