描述:
我正在做一个数据库设置,它要求我使用多个关联表,我想知道在Laravel中关联表是如何工作的,同时利用这些雄辩的关系。
我有一个包含足球比赛的数据集。我需要存储游戏的球员,游戏,和特定的玩家信息。所以我的结构应该是这样的:
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
模型?直观地说,我想编写一个player_game
迁移,其中包含玩家的特定游戏信息。但是如何使用Laravel 5和hasMany()
属性呢?
发布于 2015-12-19 03:37:49
跟随你的直觉,。你是对的,你要找的是多到多的关系。
创建中间表,然后可以处理不同的查询,如果Laravel HasMany类型方法无法满足您的需要,则始终可以直接查询中间表。
发布于 2015-12-19 03:45:37
您需要创建一个名为game_player
多到多的关系的枢轴表。您可以将您的游戏特定信息存储在此表中。
博弈模型中的关系,
public funtion players()
{
return $this->hasMany('Player');
}
若要从透视表中访问特定于游戏的信息,
foreach ($game->player as $player)
{
echo $player->pivot->created_at;
}
https://stackoverflow.com/questions/34366856
复制相似问题