急切加载时,关系后的冒号后跟两个列名有啥作用?

Posted

技术标签:

【中文标题】急切加载时,关系后的冒号后跟两个列名有啥作用?【英文标题】:What does a colon followed by two column names after a relationship do when eager loading?急切加载时,关系后的冒号后跟两个列名有什么作用? 【发布时间】:2021-03-25 07:44:55 【问题描述】:

在为我处理 Datatables 的问题寻找解决方案时,我发现了这个有趣的语法,但我在 Laravel 文档中找不到任何东西来帮助我理解发生了什么,但我想了解它的可用性。

这是代码sn-p:

return $model->select('sessions.*')
        ->with('employee:id,name');

【问题讨论】:

【参考方案1】:

文档中有提到:https://laravel.com/docs/8.x/eloquent-relationships#eager-loading-specific-columns

您可能并不总是需要您正在检索的关系中的每一列。因此,Eloquent 允许您指定要检索的关系的哪些列:

$books = Book::with('author:id,name')->get();

【讨论】:

这会派上用场的。谢谢你,马丁!

以上是关于急切加载时,关系后的冒号后跟两个列名有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

急切加载时为 Eloquent 关系别名

Laravel 急切加载与添加子句的关系?

使用 Laravel 将两个模型合并到一个分页查询中,并带有急切加载的关系

Laravel 5.4急切加载belongsToMany关系null绑定

从 5.1 迁移到 5.3 时急切加载关系的 Laravel 错误

EF Core - 为啥“无限”嵌套急切加载?