发布
社区首页 >问答首页 >Laravel 5-查询数据库中的多个关联表

Laravel 5-查询数据库中的多个关联表
EN

Stack Overflow用户
提问于 2015-12-19 03:10:22
回答 2查看 821关注 0票数 1

描述:

我正在做一个数据库设置,它要求我使用多个关联表,我想知道在Laravel中关联表是如何工作的,同时利用这些雄辩的关系。

我有一个包含足球比赛的数据集。我需要存储游戏的球员,游戏,和特定的玩家信息。所以我的结构应该是这样的:

代码语言:javascript
代码运行次数:0
复制
Player Table:
+------------+---------+
| id         | integer |
+------------+---------+
| name       | string  |
+------------+---------+
| team       | string  |
+------------+---------+
| country    | string  |
+------------+---------+
| average    | string  |
+------------+---------+
| updated_at | Date    |
+------------+---------+
| created_at | Date    |
+------------+---------+

Game Table
+--------------+---------+
| id           | integer |
+--------------+---------+
| name         | string  |
+--------------+---------+
| country      | string  |
+--------------+---------+
| tournament   | string  |
+--------------+---------+
| score        | string  |
+--------------+---------+
| started_at   | Date    |
+--------------+---------+
| ended_at     | Date    |
+--------------+---------+
| updated_at   | Date    |
+--------------+---------+
| published_at | Date    |
+--------------+---------+

问题是,我需要一个将两者联系在一起的表格,因为一个播放器可以有许多游戏,游戏有很多玩家

问题:

我将如何构造我的代码?

  • 我是否编写了一个player_game模型?
  • 因为这是Laravel,所以我用不同的方式存储联想吗?

直观地说,我想编写一个player_game迁移,其中包含玩家的特定游戏信息。但是如何使用Laravel 5和hasMany()属性呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-19 03:37:49

跟随你的直觉,。你是对的,你要找的是多到多的关系

创建中间表,然后可以处理不同的查询,如果Laravel HasMany类型方法无法满足您的需要,则始终可以直接查询中间表。

票数 1
EN

Stack Overflow用户

发布于 2015-12-19 03:45:37

您需要创建一个名为game_player 多到多的关系的枢轴表。您可以将您的游戏特定信息存储在此表中。

博弈模型中的关系,

代码语言:javascript
代码运行次数:0
复制
public funtion players()
{ 
    return $this->hasMany('Player');
}

若要从透视表中访问特定于游戏的信息,

代码语言:javascript
代码运行次数:0
复制
foreach ($game->player as $player)
{
    echo $player->pivot->created_at;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34366856

复制
相关文章

相似问题

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