htmlspecialchars()期望参数1为str​​ing,给定数组

时间:2016-11-08 14:52:34

标签: php laravel laravel-5.3

我有一个表格,如果我提交所有正确数据的表格,一切都很顺利......但如果我故意制造任何缺陷

(例如'title' => 'required|min:2'验证)

我只为标题添加了一个字符,或者如果我错过任何必填字段,我会收到此错误:

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

enter image description here

我已经发现问题在于这个选择框

{!! Form::select('item[0][]', $items, null, ['class' => 'form-control', 'required']) !!}

我甚至尝试使用没有表单助手的普通选择框{!! !!}

但我仍然得到同样的错误!

所以当存在嵌套数组时,问题就出现在验证的地方....有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:4)

好的我终于得到了这个问题的答案......看起来Laravel 5.3中的某些内容已经发生了变化,如果你想拥有一个像这样的数组的名字

{!! Form::label('title', '* Eventname: ', ['class' => 'control-label']) !!}
{!! Form::text('title[]', null, ['class' => 'form-control', 'required') !!}

你必须把[0]的东西放在括号'index'中,如下所示:

{!! Form::text('title[0]', null, ['class' => 'form-control', 'required') !!}

然后在验证中使用

标题。*

用于规则

更新

因为我使用可以展开的动态表单并添加了新的表单字段(可选)我需要为名称添加[]数组表示法,但实际上如果你已经硬编码了许多具有相同名称的字段,如item [] 你不必把[0]索引放在里面。验证将适用于他们。

只有当您有一个输入字段并且在名称上添加[]数组符号时才出现此问题,例如'item[]'

如果任何验证规则被破坏,这将触发错误......