【发布时间】:2018-06-28 00:28:14
【问题描述】:
请帮我解决这个奇怪的问题。我有一页,其中一个部分是一个带有三个字段和提交按钮的 HTML 表单。如果我加载页面,一切都很好。如果我提交表单,它会给我这个错误:
ErrorException in helpers.php line 531:
htmlentities() expects parameter 1 to be string, array given (View:
C:\xampp\htdocs\beta\resources\views\admin\table\partials\form.blade.php)
(View: C:\xampp\htdocs\beta\resources\views\admin\table\partials\form.blade.php)
form.blade.php 包含有问题的表单。代码如下:
{!! Form::model($season, [
'method' => 'post',
'route' => ['admin.tables.show', $season->id]
]) !!}
@foreach($stages as $stage)
<div class="col-md-12 formleft">
<div class="col-md-4">
<div class="form-group">
{!! Form::label('name') !!}
{!! Form::text('name[]', $stage->name, ['class' => 'form-control']) !!}
</div>
</div>
<div class="col-md-4">
<div class="form-group">
{!! Form::label('url') !!}
{!! Form::text('url[]', $stage->url, ['class' => 'form-control']) !!}
</div>
</div>
<div class="col-md-4">
<div class="form-group">
{!! Form::label('type_id', 'Type') !!}
{!! Form::select('type_id[]', $types, $stage->type_id, ['class' => 'form-control']) !!}
{!! Form::hidden('id[]', $stage->id) !!}
</div>
</div>
</div>
@endforeach
{!! Form::submit('Save stages', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
<br>
错误出现在@foreach 循环中。我已经一一删除了表单字段,但每次它都会给我同样的错误。只有当我删除所有表单字段时,它才会起作用。如果我留下没有值的表单字段,错误会再次出现。我不知道发生了什么。
为了调试代码,我更改了@foreach 循环,如下所示:
@foreach($stages as $stage)
<div class="col-md-12 formleft">
<div class="col-md-4">
<div class="form-group">
{!! Form::label('name') !!}
{!! Form::text('name[]', null, ['class' => 'form-control']) !!}
</div>
</div>
</div>
@endforeach
但是错误又来了。问题出在 {!! Form() !!},但是为什么呢?
【问题讨论】:
-
请在循环内显示
{{ dd($stage) }}的内容。 -
您为 Form::text 字段之一提供了一个数组。
-
向我们展示 {{ dd($stage) }}
-
我认为问题不在于 $stage。如果我用一些字符串替换 $stage->name 等所有字段,提交后它会给我同样的错误
-
@VinceCarter 尝试对每个字段进行一一评论,看看何时没有显示错误。