Laravel在POST上的foreach()循环中抛出错误

时间:2015-06-10 16:29:21

标签: php laravel post blade

我有一个使用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() !!}

Answer form submit

但是,当我通过点击“完成调查”提交表单时,提交按钮,laravel给我这个错误:

  

为foreach()提供的参数无效(查看:/home/kevin/PHSA-dev/my-follow-up/resources/views/questions/create.blade.php)

2 个答案:

答案 0 :(得分:0)

我的错误是重定向到我的QuestionController中不存在的页面。 'url' => 'questions'修正了它。

答案 1 :(得分:0)

您可以通过将变量转换为数组来避免此致命错误。例如:

@foreach( (array)$questions as $question )

这样一来,如果在没有$ questions为数组的情况下渲染视图,它将显示为空白而不是错误。