我的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个结果。
非常感谢任何帮助。
答案 0 :(得分:0)
要正确回答您的问题,我会在此处发布解决方案:
$alert = Alert::find($id);
仅返回1个具有唯一标识符的对象,例如id
。它永远不应该超过1个对象。
因此,由于您的view
有一个foreach
循环,因此它需要一个数组对象。
因此,如果您知道您只收到一个对象,只需将其包含在数组中:
View::make('index', array('alerts' => array($alert)));
但是,其他一些方法(如Alert::all()
或其他方法)可能已经返回了一个对象数组,因为您要求其中的许多对象。在这种情况下,您不需要将其包含在数组中。