假设我们有用户属于许多课程。课程属于一类。用户将被分配到一个类别中的少数课程,因此他将间接拥有一个类别。
所以我们可以像这样编码
$user ->find(1)->with('courses')
$user->category= $user->courses->first()->category
让用户拥有课程和类别
急切加载是否有可能有类似的东西
$user->find(1)->with('category', 'courses')
也可以用'with'子句替换发送到闭包的查询。
答案 0 :(得分:1)
find
将返回单个模型,因此在这种情况下,预先加载和延迟加载对于直接关系是等效的。对于嵌套关系,您仍然可以从预加载中受益,因为只需执行一个查询来加载每个已加载课程的类别。
您可以获得如下嵌套关系:
$user = User::with([ 'courses', 'courses.category' ])->find(1);
// These will be pre-loaded
// $user->courses
// $user->courses[0]->category