在 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 个结果而不是一个集合。
我有 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 个结果而不是一个集合。