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][]
?它不能是一个简单的项?它不能是一个简单的字符串…用户可以动态添加它们