Laravel 6版本可以使用嵌套预加载的方法预加载嵌套关联,比如在一个 Eloquent 语句中预加载一个专业对应的学生和家庭信息:
$major = App\Book::with('students.family')->where('major_name','计算机科学与技术')->get();
那么如果我们要获取的是这个专业对应的所有在校生呢?
Laravel 6可以为预加载添加约束条件,如果按照官方网文档的写法如下:
$major = App\Book::with(['students' => function ($query) {
$query->where('status', 1);
}])->where('major_name','计算机科学与技术')->get();
如果我们要获取的是这个专业对应的所有在校生及家庭信息呢?也就是Laravel 6嵌套预加载时添加约束(设置查询条件)的方法如下:
$major = App\Book::with(['students' => function ($query) {
$query->where('status', 1);
},'students.family'])->where('major_name','计算机科学与技术')->get();