重新填充时的Laravel错误:htmlentities()期望参数1为字符串,数组中给出

时间:2014-09-10 11:17:32

标签: laravel

我注意到每当我使用withInput()重定向到错误的输入表单时,会出现一些非常常见的错误。即

htmlentities() expects parameter 1 to be string, array given (View:[path])

我已经意识到只有(通常)只有在使用withInput()进行重定向时才会发生这种情况,但如果我不使用它,则不会发生错误,也不会重新填充。然而,我不知道为什么会发生这种情况,直到我昨天想到它为止,这是我对它的看法。

2 个答案:

答案 0 :(得分:1)

我的表单中的一个输入字段是文本框数组,因此它在所有字段中具有相同的名称,如provinces[]。请记住,Laravel的Input外观会将其作为变量并在重定向时,它将“返回”此变量(实质上是一个数组)并使用称为数组的第一个字段({{ 1}})。重新填充时,Laravel将(我认为)将原始字段值传递给provinces辅助函数(实际上为e()),它将参数1作为字符串但是给出了数组。

我是如何解决它的:我重命名了这些字段,以便我不使用数组作为名称,这样所有字段都有一个不同的名称。这对我有用。

如果我的推理存在缺陷,你可以用爱来纠正我(并尊重泰勒);-)

(好吧,正如alexrusselhtmlentities() expects parameter 1 to be string, array given中所说的那样,在htmlentities()中只有三个参数而不是四个参数时,也会发生这种情况。)

答案 1 :(得分:0)

我有同样的问题但是当我搜索这个错误时,我发现Laravel Input字段期望参数2是值,参数3是属性数组。因此,当您传递值应该是的属性时,htmlspecialchars将会翻转。或者只是从控制器重定向方法中删除withInput选项它将起作用