为所有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
值字段?感谢你对这些家伙的帮助!!
答案 0 :(得分:1)
嘿所有,只是意识到这个问题已经得到了解答。见:[1]:Doctrine2: Best way to handle many-to-many with extra columns in reference table