我试图确定用户是玩家还是所有者。 到目前为止,我可以使用内部联接检查其中之一。
一个游戏可以有多个玩家,并且只有一个拥有者(他们都可以定义为USER)
所以..这可以确定用户是否是玩家:
const userId = 25;
const gameId = 2;
const resutl = await this.gameRepository
.createQueryBuilder('game')
.select('game.id')
.innerJoin('game.players', 'player', 'player.id = :playerId', {playerId: userId,})
.where('game.id = :gameId', { gameId: gameId }).getOne()
但是我无法弄清楚,如何同时检查所有者...
我尝试过类似的事情:
const userId = 25;
const gameId = 2;
const resutl = await this.gameRepository
.createQueryBuilder('game')
.select('game.id')
.innerJoin('game.players', 'player', 'player.id = :playerId', {playerId: userId,})
.innerJoin('game.owner', 'owner', 'owner.id = :ownerId', {ownerId: ownerId,})
.where('game.id = :gameId', { gameId: gameId }).getOne()
但是总是返回undefined ...(无) 也许我不需要另一个内部联接来检查..也许addSelect ...我不确定...一些帮助吗?
答案 0 :(得分:0)
您是否在用户实体中创建了角色列?我建议定义一个角色列,并且该角色可以是所有者或角色,以便您可以轻松地创建if语句或授权中间件