用新创建的实体

时间:2012-11-18 17:47:10

标签: php doctrine doctrine-orm

在Doctrine入门教程中,有一个bug创建示例。错误具有实体用户的记者和工程师属性。

该示例让您传递现有记者和现有工程师的ID。然后,该示例使用id在数据库中查找用户。

$reporter = $entityManager->find("User", $theReporterId);
$engineer = $entityManager->find("User", $theDefaultEngineerId);

后来,记者和工程师都附在了虫子身上。

$bug->setReporter($reporter);
$bug->setEngineer($engineer);

由于我知道id,我认为我会聪明并创建一个新用户,将id设置为传递的变量并对用户调用persist。

$reporter = new User();
$reporter->setId($theReporterId);
$reporter->setName("Foo");
$entityManager->persist($reporter);

然后我继续使用新的User对象调用setReporter / Engineer,在bug上调用​​persist,然后调用flush。

然而,当发生这种情况时,会为记者和工程师创建一个新用户,并且数据库中的错误条目将设置为新用户的新ID。

看起来Doctrine并不知道新用户是基于现有实体的。有没有办法可以做我想做的事情?我认为这是绕过命中数据库以获取用户的好方法。

0 个答案:

没有答案
相关问题