0

我猜我只是还没有完全理解 Doctrine,但这就是我正在做的事情:

我有一个创建帐户表单,用户在其中输入典型的东西(用户、密码、电子邮件),我正在获取数据并首先创建一个电子邮件对象并将其保存到我的数据库中:

//  Create a new email object.
$email = new Entities\EmailAddress();
$email->setEmailAddress($emailAddress);

//  Persist the new email object.
$this->doctrine->em->persist($email);

然后我正在创建一个用户对象并将其持久化到数据库中:

//  Create a new user object.
$user = new Entities\User();
$user->setUsername($username);
$user->setPassword($password);
$user->setSecurityLevel(0);
$user->getEmailAddresses()->add($email);

//  Persist the new user object.
$this->doctrine->em->persist($user);

麻烦$user->getEmailAddresses()->add($email);从这条线开始(我试图效仿一个例子,但我担心我离正确地做这件事还差得很远)。

User.php电子邮件在我的文件中是这样定义的:

/**
 * @ORM\OneToMany(targetEntity="EmailAddress", mappedBy="user")
 */
private $emails;

如何将最近保存的电子邮件对象添加到我的班级的一对多关系$emails变量并将用户保存到数据库?User.php

4

1 回答 1

0

你很接近,但忘记了:

$user->getEmailAddresses()->add($email);

并将其替换为

$user->addEmails($email);

或者

$user->setEmails($email);

取决于映射

于 2013-02-16T01:11:27.807 回答