0

各ユーザーが「ホーム」を持つアプリがあります。

FOSUserBundle 登録 FormType をオーバーライドして、ホームを埋め込み、登録プロセスでいくつかのプロパティを取得しました。残念ながら、登録すると、新しいユーザーは保持されますが、新しいホームは保持されません。

既存のホームに2番目のユーザーを作成したい場合に備えて、ユーザーにpostPersistリスナーを設定したくありません。RegistrationFormHandler onSuccess() または process() メソッドをオーバーライドし、手動でホームを永続化する必要があると思いますか? この場合、コンストラクターに DocumentManager を挿入する必要がありますか? これが最善の方法ですか?

Doctrine MongoDB ODM をストレージ層として使用していますが、違いがある場合は?

4

1 に答える 1

0

独自のRegistrationFormHandlerを作成し、onSuccessメソッドをオーバーライドしました。

public function onSuccess(UserInterface $user, $confirmation)
{
    $home = $user->getHome();
    $this->documentManager->persist($home);
    $this->documentManager->flush();

    parent::onSuccess($user, $confirmation);
}

これは、コンストラクターに挿入する必要があるドキュメントマネージャーを使用します。

于 2012-12-11T17:14:10.663 に答える