我注意到每当我使用withInput()
重定向到错误的输入表单时,会出现一些非常常见的错误。即
htmlentities() expects parameter 1 to be string, array given (View:[path])
我已经意识到只有(通常)只有在使用withInput()
进行重定向时才会发生这种情况,但如果我不使用它,则不会发生错误,也不会重新填充。然而,我不知道为什么会发生这种情况,直到我昨天想到它为止,这是我对它的看法。
答案 0 :(得分:1)
我的表单中的一个输入字段是文本框数组,因此它在所有字段中具有相同的名称,如provinces[]
。请记住,Laravel的Input
外观会将其作为变量并在重定向时,它将“返回”此变量(实质上是一个数组)并使用称为数组的第一个字段({{ 1}})。重新填充时,Laravel将(我认为)将原始字段值传递给provinces
辅助函数(实际上为e()
),它将参数1作为字符串但是给出了数组。
我是如何解决它的:我重命名了这些字段,以便我不使用数组作为名称,这样所有字段都有一个不同的名称。这对我有用。
如果我的推理存在缺陷,你可以用爱来纠正我(并尊重泰勒);-)
(好吧,正如alexrussel在htmlentities() expects parameter 1 to be string, array given中所说的那样,在htmlentities()
中只有三个参数而不是四个参数时,也会发生这种情况。)
答案 1 :(得分:0)
我有同样的问题但是当我搜索这个错误时,我发现Laravel Input字段期望参数2是值,参数3是属性数组。因此,当您传递值应该是的属性时,htmlspecialchars将会翻转。或者只是从控制器重定向方法中删除withInput选项它将起作用