我在 Doctrine 2.2 中使用类表继承模式。我的数据库架构如下:
父
access_id(主键)
access_type(鉴别列)
access_role access_acl access_primary
user_id
(
外键)
Child 1
access_id(外键)
account_id(外键)
Child 2
access_id(外键)
distributor_id(外键)
当我尝试向数据库中插入一个新实体时,父查询看起来不错,但子查询有一个额外的参数。当我转储正在执行的查询时,这就是我所看到的:
INSERT INTO user_access_account (access_id, account_id) VALUES (?, ?)
array('1'=> 39, '2'=> NULL, '3'=> 3 )
'2' 索引是无关的。'1' => 39, '2' => 3 是正确的参数。
用于执行此查询的代码如下:
$entity = new Entity\UserAccessAccount();
$entity->setAccount($account)
->setUser($user)
->setAccessRole($accessRole)
->setAccessAcl($accessAcl)
->setAccessPrimary($accessPrimary);
$em->persist($entity);
$em->flush($entity);