首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在eloquent中从子集合中获取自己的数据和指定变量的集合

在eloquent中从子集合中获取自己的数据和指定变量的集合
EN

Stack Overflow用户
提问于 2018-05-28 18:11:48
回答 1查看 350关注 0票数 0

首先,很抱歉问题描述没有很好地描述我的问题,但我不知道如何在一行中更好地组织我的问题。欢迎提出建议..

背景信息

  • Laravel 5.6.x
  • I defined my objects as eloquent models
  • Using migrations to create

有关应用程序的背景信息

我有一个应用程序,其中Game对象与Player对象具有一对多关系。Game对象包含所有游戏详细信息,Player对象包含单个玩家的所有详细信息。

玩家被邀请参加一场比赛,可以接受也可以拒绝。这些信息保存在玩家本身中,因为玩家在每个游戏中都是唯一的。

现在我想创建所有游戏的概述。概览中的一件事是接受玩家的数量,邀请的玩家和他们的id。

为了获取所有游戏,我使用$games = Game::all();,它给了我一个包含所有游戏(没有播放器)的数组。我可以通过执行以下操作将玩家添加到数组中:

代码语言:javascript
复制
foreach ($game as $singleGame){
   $singleGame->players
}

在那之后,我的$games数组包含所有的游戏,每个游戏都有一个子集合,每个游戏都有它的玩家。这几乎就是我所需要的,但是子集合包含了许多关于玩家的细节,例如玩家拥有的手牌。

问题有没有一种简单的方法,将每个玩家的invite_statusplayer_id值添加到游戏的子集合中,而不是所有玩家的var中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 18:19:10

这应该能起到作用:

代码语言:javascript
复制
$games = Game::with(['players' => function( $query){
    $query->select('invite_status', 'player_id');
}])->get();

使用循环来获取每个游戏的玩家将对每个玩家进行查询,这是非常糟糕的。使用with()将通过一个查询加载所有字段,并使用select()指定需要的字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50563998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档