0

在 Doctrine Getting Started 教程中,有一个错误创建的示例。错误具有报告者和实体用户的工程师属性。

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

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

后来,记者和工程师附在了这个bug上。

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

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

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

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

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

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

4

0 回答 0