在 Laravel 5 中预加载 3 个模型

Eager Loading on 3 Models in Laravel 5

我有 3 个相关的模型: "Tutorial" 属于 "Title" 属于 "Course"。或者(相反)。一个 "Course" 有很多 "Titles" 有很多 "Tutorials" 。 我想根据它的 id 找到一门课程,并使用 eager loading 获取它的所有标题和教程。 代码看起来是这样的:

$course = Course::with('titles')->where('id','=',$id)->get(); 

// 这 returns 只是一个带有标题的课程,但我还想获得属于每个标题的教程。

您可以使用记录的点语法预先加载嵌套关系 here

$course = Course::with('titles.tutorials')->find($id);

如您所见,我也将 where('id', '=', $id) 更改为 find($id)。这将做同样的事情,但也只有 return 个结果而不是一个集合。