通过findMany选择列,并在Laravel的Eloquent中保持关系

时间:2018-08-30 04:41:24

标签: php laravel eloquent

我正在尝试获取帖子和作者。但是,我只需要帖子标题和作者信息。

这是我正在运行的查询

// I want post titles with IDs of 1, 2, 3, 4 and 5 and the author of each one
Post::with('author')->findMany([1, 2, 3, 4 , 5], ['post_title');

生成的收藏集的罚款为post_title,但作者关系为

但是,如果我跑步:

Post::findMany([1, 2, 3, 4, 5])->with('author');

我可以在$post->author->first_name中访问作者。

如果我指定需要的列,我不明白为什么关系会丢失。

那么,如何查询posts表以指定我要选择的列并保持与作者的关系?

1 个答案:

答案 0 :(得分:1)

您必须选择Post id,因为当您使用with方法时,这意味着您正在使用Laravel急切加载,急切加载需要Post id来加载author < / p>

Post::with('author')->findMany([1, 2, 3, 4 , 5], ['id','post_title');