这可能是我使用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
答案 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()