Laravel foreach循环返回的结果多于正确的结果

时间:2014-04-13 15:02:33

标签: php foreach laravel blade

我的foreach循环应该只返回1个结果,但是,它会返回3个相同的结果!

我使用Blade作为模板 -

  

{{计数($警报)}}

返回' 1'。但是下面的foreach循环:

@foreach($alerts as $alert)
    <tr>
        <td>{{ $alerts->id }}</td>
    </tr>
@endforeach

传递数据数组的控制器函数是:

public function getIndex()
{

    $id     = Auth::user()->id;    
    $alert = Alert::find($id);      
    $this->layout->content = View::make('index', array('alerts' => $alert));

}

DD($ alert)也只返回1个结果。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

要正确回答您的问题,我会在此处发布解决方案:

$alert = Alert::find($id);

仅返回1个具有唯一标识符的对象,例如id。它永远不应该超过1个对象。

因此,由于您的view有一个foreach循环,因此它需要一个数组对象。 因此,如果您知道您只收到一个对象,只需将其包含在数组中:

View::make('index', array('alerts' => array($alert)));

但是,其他一些方法(如Alert::all()或其他方法)可能已经返回了一个对象数组,因为您要求其中的许多对象。在这种情况下,您不需要将其包含在数组中。