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最近永続化された電子メールオブジェクトをクラスの1対多の関係変数に追加しUser.php、ユーザーをデータベースに永続化するにはどうすればよいですか?

4

1 に答える 1

0

あなたは近くにいますが、忘れてください:

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

そしてそれを

$user->addEmails($email);

また

$user->setEmails($email);

マッピングに依存

于 2013-02-16T01:11:27.807 に答える