我有一个使用克隆jQuery插件克隆表单元素的表单。要克隆的元素如下所示:
<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表单请求。以下是我的规则:
public function rules()
{
return [
'name' => 'required|between:3,50',
'count' => 'required|integer|min:1',
];
}
但这不起作用。当我提交表单时,我得到了以下错误消息:
htmlentities() expects parameter 1 to be string, array given
我一直在寻找解决办法,但就是找不到合适的。任何建议将不胜感激! 基本上,在您的rules()
方法中,您需要确定POST
中有多少name
和count
元素,然后为每个元素创建规则:
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;
}