laravel嵌套预加载为每个关联指定查询字段

admin 阅读:93 2024-03-04

预加载嵌套关联,可以使用「点」语法。例如,在一个 Eloquent 语句中,预加载所有书籍作者和这些作者的联系信息:


$books = AppBook::with('author.contacts')->get();

那么如何为分别为author 和 contacts 指定查询字段呢?

方法一:


AppBook::with(['author' => function ($query) {
  $query->select(['选定的字段']);
  $query->with(['contacts' => function ($query) {
     $query->select(['选定的字段']);
  }]);
}])->get()

方法二:


AppBook::with(['author:id,name', 'author.contacts:email,user_id'])->get();

方法三:


AppBook::with(['author' => function ($query) {
  $query->select(['选定的字段']);
},'author.contacts' => function ($query) {
  $query->select(['选定的字段']);
}])->get();

 

引申阅读:Laravel 6嵌套预加载时添加约束(设置查询条件)的方法

声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!