Php Laravel雄辩-执行查询时关系中的关系

Php Laravel雄辩-执行查询时关系中的关系,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有3个相关的表:项目、更新和更新项目 用户创建一个项目,然后可以为该项目创建更新,但更新包含更新项 因此,一个项目有很多更新,一个更新有很多更新项 我目前在项目模型中有关系以获取更新: public function updates() return $this->hasMany('App\Update'); } 然后在我的控制器中: $project = Project::with('updates')->where('id', $id)->first();

我有3个相关的表:项目、更新和更新项目

用户创建一个项目,然后可以为该项目创建更新,但更新包含更新项

因此,一个项目有很多更新,一个更新有很多更新项

我目前在项目模型中有关系以获取更新:

public function updates()
    return $this->hasMany('App\Update');
}
然后在我的控制器中:

$project = Project::with('updates')->where('id', $id)->first();
 $project = Project::find($id);
 $updates = Project::with('updates_items')->where('project_id', $id)->all();
这可以拉入更新,我得到一个数组。但是更新表本质上类似于一个透视表,只包含更新id和相关项目id

我需要知道的是,我怎样才能同时拉入属于更新的更新项

我希望能够做到,例如:

@foreach ($project->updates as $update)
    @foreach ($update->item as $item)

        ECHO THROUGH THE UPDATE ITEMS

    @endforeach
@endforeach
我可以在控制器中的一个查询中执行此操作吗

或者我必须在UpdateItem模型中创建另一个关系,然后在控制器中执行以下操作:

$project = Project::with('updates')->where('id', $id)->first();
 $project = Project::find($id);
 $updates = Project::with('updates_items')->where('project_id', $id)->all();

你试过点符号吗

然后,您可以执行以下操作:

@foreach ($project->updates as $update)
    @foreach ($update->update_items as $item)

        ECHO THROUGH THE UPDATE ITEMS

    @endforeach
@endforeach
不过,请注意:

我可以在控制器中的一个查询中执行此操作吗


快速加载是一种方便。它不运行单个查询。在这种情况下,它将运行3个查询以建立这种层次关系。

这就是我喜欢Laravel的原因。