我有一个使用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
我一直在寻找解决方案,但无法找到合适的解决方案。任何建议将不胜感激!
答案 0 :(得分:2)
基本上,在rules()
方法中,您需要确定name
中有多少count
和POST
个元素,然后为每个元素创建规则:
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。