我的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()
或其他方法)可能已经返回了一个对象数组,因为您请求了其中的许多对象。在这种情况下,您不需要将它封装在数组中。