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


Laravel foreach loop returning more results than correct

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

我正在使用刀片作为模板-

{{count($alerts)}}

返回"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个结果。

任何帮助都将不胜感激。

为了正确回答您的问题,我将在这里发布解决方案:

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

将只返回一个具有唯一标识符的对象,例如id。它不应转动超过1个对象。

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

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

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