Doctrine 2多对多与连接表的双向关系,我需要捕获一个额外的字段

时间:2011-03-02 01:42:55

标签: php doctrine-orm

为所有Doctrine 2问题道歉,但我一直在努力深入研究它并且遇到了一些问题。我正在尝试设置ACL,所以在这种情况下我有3个表,users / user_perms / permissions。用于创建db表的sql如下:

CREATE TABLE `users` (`ID` int(10) unsigned zerofill NOT NULL auto_increment,`username` varchar(20) NOT NULL,PRIMARY KEY  (`ID`),KEY `Username` (`username`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `user_perms` (`ID` bigint(20) unsigned zerofill NOT NULL auto_increment,`userID` bigint(20) NOT NULL, `permID` bigint(20) NOT NULL,`value` tinyint(1) NOT NULL default '0', `addDate` datetime NOT NULL, PRIMARY KEY  (`ID`), UNIQUE KEY `userID` (`userID`,`permID`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `permissions` (`ID` bigint(20) unsigned zerofill NOT NULL auto_increment,`permKey` varchar(30) NOT NULL,`permName` varchar(30) NOT NULL, PRIMARY KEY  (`ID`),UNIQUE KEY `permKey` (`permKey`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

如您所见,user_perms充当用户与可用权限之间的连接表,但它还包含“value”字段,该字段是该特定权限的允许/拒绝值。我理解如何执行标准的多对多双向关系,但我如何能够捕获user_perms值字段?感谢你对这些家伙的帮助!!

1 个答案:

答案 0 :(得分:1)

嘿所有,只是意识到这个问题已经得到了解答。见:[1]:Doctrine2: Best way to handle many-to-many with extra columns in reference table