标签: doctrine-mapping

如何在学义映射中描述多列外键

我们有一个数据库模式,以简化(略作作)的形式看起来像:

在此处输入图片说明

在列(domainId,groupId)上设置从用户到域的外键的位置,以确保引用完整性。此结构可以很好地用于预期目的。


但是,对于与同一个数据库通信的新应用程序,我现在需要为Doctrine创建一个映射,以映射上述结构,包括列上的外键关系。

我尝试了以下方法:

<entity name="User" table="users">
   <!-- other fields -->
   <many-to-one field="domain" target-entity="Domain" fetch="LAZY">
      <join-columns>
         <join-column name="domainId" referenced-column-name="domainId"/>
         <join-column name="groupId" referenced-column-name="groupId"/>
      </join-columns>
   </many-to-one>
</entity>
Run Code Online (Sandbox Code Playgroud)

但这给我一个错误: UnitOfWork.php line 2649: Undefined index: groupId

所以,我的问题是:

在主义中描述多列多对一外键关系的正确方法是什么?



为了完整起见,数据库为上述ERD中所述的架构创建代码:

CREATE TABLE `users` (
  `userId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `groupId` INT(10) UNSIGNED NOT NULL,
  `domainId` INT(10) UNSIGNED NOT NULL,
  `someData` VARCHAR(32),
  PRIMARY KEY (`userId`),
  KEY `key_users_groupId_domainId` (`groupId`, `domainId`)
) ENGINE=InnoDB;

CREATE TABLE `domains` (
  `domainId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `groupId` …
Run Code Online (Sandbox Code Playgroud)

php mysql doctrine foreign-key-relationship doctrine-mapping

5
推荐指数
1
解决办法
825
查看次数