Laravel 重新填充时发生Larvel错误:htmlentities()要求参数1为字符串,数组在中给出
我注意到,每当我使用Laravel 重新填充时发生Larvel错误:htmlentities()要求参数1为字符串,数组在中给出,laravel,Laravel,我注意到,每当我使用withInput()重定向回输入表单出错时,总会出现一个非常常见的错误。即 htmlentities() expects parameter 1 to be string, array given (View:[path]) 我已经意识到,只有当我使用withInput()重定向时,才会(通常)发生这种情况,但如果我不使用它,则不会发生错误,Firld也不会重新填充。然而,直到昨天我想放弃它,我才知道为什么会发生这种情况,这就是我对它的看法。 我表单中的一个输入字段是一个
withInput()
重定向回输入表单出错时,总会出现一个非常常见的错误。即
htmlentities() expects parameter 1 to be string, array given (View:[path])
我已经意识到,只有当我使用withInput()
重定向时,才会(通常)发生这种情况,但如果我不使用它,则不会发生错误,Firld也不会重新填充。然而,直到昨天我想放弃它,我才知道为什么会发生这种情况,这就是我对它的看法。
我表单中的一个输入字段是一个文本框数组,因此它在所有字段中都有相同的名称,如
省[]
。请记住,Laravel的输入
facade将把它作为一个变量获取,在重定向时,它将使用这个变量“返回”(本质上是一个数组),并使用第一个名为数组的字段加载它(省份
)。重新填充时,Laravel将(我认为)将原始字段值传递给e()
helper函数(htmlentities()
),该函数期望参数1为字符串,但数组是给定的。
我是如何解决的:我重命名了字段,这样我就不会使用数组作为它们的名称,这样所有字段都有一个不同的名称。这对我很管用。
如果我的推理有缺陷,你可以用爱(和对泰勒的尊重)来纠正我;-)
(正如在中所说,在
表单::input()
中只给出了三个参数而不是四个参数时,也会出现这种情况。)我也有同样的问题,但当我搜索此错误时,我发现Laravel输入字段期望参数2为值,参数3为属性数组。因此,当您将属性传递到值应该位于的位置时,htmlspecialchars将翻转。或者只需从控制器重定向方法中删除withInput选项即可遇到同样的问题,在这种情况下不能真正使用数组,因此不确定我能做什么。别名,这里也有同样的问题。请链接到线程,如果你打开了这个!