Php htmlspecialchars()要求参数1为字符串,数组给定

Php htmlspecialchars()要求参数1为字符串,数组给定,php,laravel,laravel-5.3,Php,Laravel,Laravel 5.3,我有一张表格,如果我提交的表格包含所有正确的数据,一切都会很好。。。但如果我故意制造任何瑕疵 (例如需要验证'title'=>'最小值:2') 我只为标题输入了一个字符,如果我遗漏了任何必填字段,我会得到以下错误: htmlspecialchars() expects parameter 1 to be string, array given 我发现问题出在这个选择框上 {!! Form::select('item[0][]', $items, null, ['class' => 'f

我有一张表格,如果我提交的表格包含所有正确的数据,一切都会很好。。。但如果我故意制造任何瑕疵

(例如需要验证
'title'=>'最小值:2'

我只为标题输入了一个字符,如果我遗漏了任何必填字段,我会得到以下错误:

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

我发现问题出在这个选择框上

{!! Form::select('item[0][]', $items, null, ['class' => 'form-control', 'required']) !!}
我甚至尝试使用一个没有表单助手的普通选择框{!!!!}

但我还是犯了同样的错误


因此,当存在嵌套数组时,验证的问题就出现了……有什么方法可以解决这个问题吗?

好的,我终于找到了这个问题的答案……在Laravel 5.3中似乎发生了一些变化,如果你想用这样的数组命名的话

{!! Form::label('title', '* Eventname: ', ['class' => 'control-label']) !!}
{!! Form::text('title[]', null, ['class' => 'form-control', 'required') !!}
您必须在括号“索引”中放入[0]某些内容,如下所示:

{!! Form::text('title[0]', null, ['class' => 'form-control', 'required') !!}
然后在验证中使用

标题。*

规则

更新

因为我使用可以扩展的动态表单和添加的新表单字段(可选),所以我需要为名称添加[]数组符号,但实际上,如果您已经硬编码了许多具有相同名称的字段,比如item[] 您不必将[0]索引放入其中。验证将对他们起作用

只有当您只有一个输入字段,并且在名称旁边放置[]数组符号时,才会出现问题,例如
“item[]”


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

好的,我终于找到了这个问题的答案了…在Laravel 5.3中似乎发生了一些变化,如果您想用这样的数组命名

{!! Form::label('title', '* Eventname: ', ['class' => 'control-label']) !!}
{!! Form::text('title[]', null, ['class' => 'form-control', 'required') !!}
您必须在括号“索引”中放入[0]某些内容,如下所示:

{!! Form::text('title[0]', null, ['class' => 'form-control', 'required') !!}
然后在验证中使用

标题。*

规则

更新

因为我使用可以扩展的动态表单和添加的新表单字段(可选),所以我需要为名称添加[]数组符号,但实际上,如果您已经硬编码了许多具有相同名称的字段,比如item[] 您不必将[0]索引放入其中。验证将对他们起作用

只有当您只有一个输入字段,并且在名称旁边放置[]数组符号时,才会出现问题,例如
“item[]”


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

是否有理由将选择框命名为
项[0][]
?它不能是简单的
项吗?
?它不能是简单的字符串…用户可以动态添加它们。您之所以将选择框命名为
项[0][]
?它不能是一个简单的
?它不能是一个简单的字符串…用户可以动态添加它们