渴求式加载指定字段加载多个关联关系嵌套的渴求式加载带条件约束的渴求式加载

Posted 头大的冯冯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渴求式加载指定字段加载多个关联关系嵌套的渴求式加载带条件约束的渴求式加载相关的知识,希望对你有一定的参考价值。

渴求式加载多个关联关系

有时候你需要在单个操作中渴求式加载多个不同的关联关系。要实现这个功能,只需要添加额外的参数到 with 方法即可:

1 $books = App\Book::with(‘author‘, ‘publisher‘)->get();

嵌套的渴求式加载

要渴求式加载嵌套的关联关系,可以使用”.“语法。例如,我们在一个 Eloquent 语句中渴求式加载所有书的作者及所有作者的个人联系方式:

1 $books = App\Book::with(‘author.contacts‘)->get();

渴求式加载指定字段

并不是每次获取关联关系时都需要所有字段,因此,Eloquent 允许你在关联查询时指定要查询的字段:

1 $users = App\Book::with(‘author:id,name‘)->get(); 

注:使用这个特性时,id 字段是必须列出的。

带条件约束的渴求式加载

有时候我们希望渴求式加载一个关联关系,但还想为渴求式加载指定更多的查询条件:

1 $users = App\User::with([‘posts‘ => function ($query) {
2     $query->where(‘title‘, ‘like‘, ‘%first%‘);
3 }])->get();

在这个例子中,Eloquent 只渴求式加载 title 包含 first 的文章。当然,你还可以调用其它查询构建器来自定义渴求式加载操作:

1 $users = App\User::with([‘posts‘ => function ($query) {
2     $query->orderBy(‘created_at‘, ‘desc‘);
3 }])->get();

以上是关于渴求式加载指定字段加载多个关联关系嵌套的渴求式加载带条件约束的渴求式加载的主要内容,如果未能解决你的问题,请参考以下文章

laravel 渴求式加载 with与load

laravel 嵌套的渴求式加载

withhaswhereHaswithCount

9. MyBatis加载策略

TypeORM:如何在没有加载关系的属性的情况下显式设置 ForeignKey?

Laravel Eloquent:渴望加载多个嵌套关系