我正在建造一个游戏。现在我有3个表,'游戏','用户'和'games_users'。对于“游戏”和“用户”,我烘焙了所有文件“games_users”的关联工作正常。
这是我的表格:
CREATE TABLE `games` (
`id` int(11) NOT NULL,
`owner` int(11) NOT NULL,
`userturn` int(11) NOT NULL,
`tag` varchar(20) NOT NULL,
`status` int(1) NOT NULL,
`gametype_id` int(11) NOT NULL,
`won` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `users` (
`id` int(11) NOT NULL,
`facebook` varchar(20) NOT NULL,
`first_name` varchar(20) NOT NULL,
`last_name` varchar(20) NOT NULL,
`username` varchar(20) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(50) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `games_users` (
`game_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我对games_users的关联:
在GamesTable中:
$this->belongsToMany('Users', [
'foreignKey' => 'game_id',
'targetForeignKey' => 'user_id',
'joinTable' => 'games_users'
]);
在UsersTable中:
$this->belongsToMany('Games', [
'foreignKey' => 'user_id',
'targetForeignKey' => 'game_id',
'joinTable' => 'games_users'
]);
在表'游戏'中有两列'userturn'和'won',它们都是users_id。如何为这些列建立关联?
答案 0 :(得分:1)
您可以使用用户的不同别名为Games表中的Users表设置多个关联。
在GamesTable
:
$this->belongsTo('UserTurn', [
'className' => 'Users',
'foreignKey' => 'userturn'
]);
$this->belongsTo('Won', [
'className' => 'Users',
'foreignKey' => 'won'
]);