我有一个使用Laravel构建的调查应用程序。当用户为他们的问题创建答案时,他们会将其输入到相应的文本框中(使用一些jQuery动态添加)。我的部分create.blade.php代码如下:
{!! Form::open(['url' => 'surveys']) !!}
@foreach( $questions as $question )
<h2>{{$question->text}}</h2>
<div id="input_fields_wrap_{{ $question->id }}">
<div class="form-group">
{{--{!! Form::label('answer', 'Answers:') !!}--}}
<div class="input-group">
{!! Form::text('answers[]', null, ['class' => 'form-control']) !!}
<span class="input-group-btn"><button class="btn btn-default btn-danger remove_field" type="button">Remove</button></span>
</div>
</div>
</div>
<div id="{{ $question->id }}" class="add_answer_button btn btn-primary" style="margin-bottom:15px" type="text">Add another Answer</div>
@endforeach
<div class="form-group">
{!! Form::submit('Finish Survey', ['class' => 'btn btn-primary form-control']) !!}
</div>
{!! Form::close() !!}
但是,当我通过点击“完成调查”提交表单时,提交按钮,laravel给我这个错误:
为foreach()提供的参数无效(查看:/home/kevin/PHSA-dev/my-follow-up/resources/views/questions/create.blade.php)
答案 0 :(得分:0)
我的错误是重定向到我的QuestionController中不存在的页面。 'url' => 'questions'
修正了它。
答案 1 :(得分:0)
您可以通过将变量转换为数组来避免此致命错误。例如:
@foreach( (array)$questions as $question )
这样一来,如果在没有$ questions为数组的情况下渲染视图,它将显示为空白而不是错误。