Я хотел бы получить сложные вложенные отношения:
игрок
предметов
статистика
драгоценные камни
Вот как это работает: игрок берет несколько предметов и кладет немного драгоценные камни на каждой статистике
Было бы довольно легко получить все оборудование игрока с его статистикой, используя это:
Player::with(['items.stats'])->get(1);
______________________________________
Player.php
return $this->belongsToMany(Item::class, 'player_items', 'id_player', 'id_item');
______________________________________
Item.php
return $this->belongsToMany(Statistics::class, 'items_statistics', 'id_item', 'id_statistic');
Но как я могу получить все драгоценные камни, которые помещают игрока в каждую статистику, когда он захватывает предмет?
Очевидно, что добавление таких отношений не поможет:
Statistics.php
return $this->belongsToMany(Gems::class, 'player_items_statistics_gems', ????, ????);
И вызов этого значения Player::with(['items.stats.gems'])->get(1)
, поскольку все отношения от предметы и игрок будут потеряны, Laravel получит все драгоценные камни всех игроков за указанную статистику c.
Возможно ли go так глубоко при энергичной загрузке Laravel?
РЕДАКТИРОВАТЬ: Вот схема таблицы
players
+-----------+-------------+
| id_player | name_player |
+-----------+-------------+
| 1 | Abi |
| 2 | Bia |
+-----------+-------------+
items
+---------+-----------+
| id_item | name_item |
+---------+-----------+
| 1 | Morpheus |
| 2 | Excalibur |
+---------+-----------+
statistics
+--------------+----------------+
| id_statistic | name_statistic |
+--------------+----------------+
| 1 | Strength |
| 2 | Wisdom |
+--------------+----------------+
gems
+--------+-------------+
| id_gem | name_gem |
+--------+-------------+
| 1 | Invisible |
| 2 | Fly |
| 3 | Death |
+--------+-------------+
And the pivot tables :
player_items :
+-----------+---------+
| id_player | id_item |
+-----------+---------+
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
+-----------+---------+
player_items_statistics_gems
+-----------+---------+---------------+---------+
| id_player | id_item | id_statistic | id_gem |
+-----------+---------+---------------+---------+
| 1 | 1 | 1 | 1 |
| 1 | 1 | 2 | 3 |
| 1 | 2 | 1 | 3 |
+-----------+---------+---------------+---------+