数据透视表和雄辩的Laravel 5.5

时间:2017-12-04 08:59:51

标签: laravel eloquent

这可能是我使用laravel时面临的最难的问题,我希望你们中的一些人可以帮助我解决它。

所以,我的数据库中有以下架构:

游戏

id_game

球员

id_player

Role_Players

id_role 描述

Games_players

ROLE_ID game_id player_id

现在,我与游戏和玩家以及以下模型有很多关系

 class Games {

    public function players {

     return $this->belongsToMany(Players::class, Games_players,  id_game, id_player)     


   }
}

这将返回与游戏相关的所有玩家,但我如何在此游戏中返回玩家的角色?我知道我有一个对象$ games-> players-> pivot我可以添加列role_id,但是如何使用eloquent获取描述?我努力工作。

我将不胜感激。

感谢。

d

2 个答案:

答案 0 :(得分:0)

您可以使用自己的关系为您的数据透视表创建一个模型,然后使用它。因此,Games_players的模型将与角色,玩家和游戏建立关系,反之亦然。

这些关系不必替换您当前的manyToMany关系,它们可以同时存在。

答案 1 :(得分:0)

我有个主意。

您可以像这样添加与玩家模型的关系

class Players {

    public function roles {

     return $this->belongsToMany(Roles::class, Games_players,  id_player, id_role )     

   }
}

然后您可以使用预先加载

$games = Games::with('players.roles')->get()