Php Laravel 5表单循环提供HtmLenties()期望参数1为字符串,数组为给定值

Php Laravel 5表单循环提供HtmLenties()期望参数1为字符串,数组为给定值,php,laravel-5,Php,Laravel 5,我有以下表格: {{ Form::text('invoicerow[]', null, array( 'class' => 'form-control '.( $errors->has('initial') ? 'errorborder':'' ) ) ) }} 您可以通过JS添加一行。 当我发布并验证它为false时,它返回到表单页面,并显示此错误 htmlentities() expects parameter 1 to be string, array given (Vie

我有以下表格:

{{ Form::text('invoicerow[]', null, array( 'class' => 'form-control '.( $errors->has('initial') ? 'errorborder':'' )  ) ) }}
您可以通过JS添加一行。 当我发布并验证它为false时,它返回到表单页面,并显示此错误

htmlentities() expects parameter 1 to be string, array given (View: /home/xxx/public_html/resources/views/invoice/create.blade.php)

如何避免这种情况?

使用创建数组的表单会导致Laravel出现问题。解决方法是向表单名称添加显式索引(如下所示)。这将为您解决问题,并允许您正确验证每个字段

{{ Form::text('invoicerow[0]', null, array( 'class' => 'form-control '.( $errors->has('initial') ? 'errorborder':'' )  ) ) }}
{{ Form::text('invoicerow[1]', null, array( 'class' => 'form-control '.( $errors->has('initial') ? 'errorborder':'' )  ) ) }}
{{ Form::text('invoicerow[2]', null, array( 'class' => 'form-control '.( $errors->has('initial') ? 'errorborder':'' )  ) ) }}
...
但是,这确实意味着表单中的
+
x
按钮需要在添加或删除新行时重新计算字段的索引

例如,如果我删除
invoicerow[1]
,您的JavaScript将需要重新计算其他字段的索引,因此
invoicerow[2]
将重命名为
invoicerow[1]


类似地,如果我在末尾添加新行,新字段的名称应该是
invoicerow[3]
(假设我之前已经添加了3个字段),即
invoicerow[n+1]

我将代码更改为您的建议,它可以工作。谢谢不客气!当我第一次遇到这个问题时,我花了一段时间才发现它。