Laravel渴望加载不返回数据

时间:2014-04-21 11:40:55

标签: foreach laravel laravel-4 eager-loading

方案

警报属于1个用户和1个位置,两者分别由alert表中的外键 - user_id和location_id引用。每个请求的user_id都是相同的,但location_id肯定会有所不同。

我想显示与该用户相关的所有警报,我已经成功实现了这一点,但没有使用预先加载。

到目前为止我的getIndex函数:

public function getIndex()
    {   
        $alert = User::with('alerts.location')
                            ->where('id', '=', Auth::user()->id)->first();
        $this->layout->content = View::make('agents.index', 
                                             array('alert' => $alert));
    }

打印MYSQL查询似乎在逻辑上是正确的,但是,我正在努力展示'位置'查询的一部分。

我的foreach循环是:

@foreach($alert->locations as $alert)
    <td>{{ $alert->location->address_1}}</td>
@endforeach

但是,它会返回错误:

  

为foreach()提供的参数无效

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

通过使用此forloop访问数据,我能够解决问题@foreach($alert->alerts as $alert)