Laravel 5使用表单请求验证克隆的字段

时间:2015-10-14 22:32:02

标签: php jquery laravel-5

我有一个使用cloneya jQuery plugin克隆表单元素的表单。将要克隆的元素如下所示:

<div class="form-group">
    <label for="name">Item name</label>
    <input class="form-control" name="name[]" type="text">
</div>
<div class="form-group">
    <label for="count">Item count</label>
    <input class="form-control" name="count[]" type="text">
</div>

如您所见,每个输入都是数组而不是字符串。我想验证那些使用Laravel Form Request的人。这是我的规则:

public function rules()
{
    return [
        'name'  => 'required|between:3,50',
        'count' => 'required|integer|min:1',
    ];
}

但那不起作用。当我提交表单时,收到以下错误消息:

htmlentities() expects parameter 1 to be string, array given

我一直在寻找解决方案,但无法找到合适的解决方案。任何建议将不胜感激!

1 个答案:

答案 0 :(得分:2)

基本上,在rules()方法中,您需要确定name中有多少countPOST个元素,然后为每个元素创建规则:

public function rules()
{
    $rules = [];

    foreach ($this->request->get('name') as $index => $val) {
        $rules['name.' . $index] = 'required|between:3,50';
    }

    foreach ($this->request->get('count') as $index => $val) {
        $rules['count.' . $index] = 'required|integer|min:1';
    }

    return $rules;
}

请检查this post