Php Laravel雄辩-执行查询时关系中的关系
我有3个相关的表:项目、更新和更新项目 用户创建一个项目,然后可以为该项目创建更新,但更新包含更新项 因此,一个项目有很多更新,一个更新有很多更新项 我目前在项目模型中有关系以获取更新: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();
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的原因。