私は、ユーザーオブジェクトのためのPrePersist
& PreRemove
イベントをリッスンUserListener
(symfony docs page)を持っている教義2とsymfonyの2を使用しています。ユーザーを永続化する場合、User
のUserInventory
インスタンスを作成したいとします。 UserInventory
は、(一方向の)関連の所有側です。無限ループイベント・リスナーを持つエンティティを永続
ただし、この設定で、私は無限ループが発生します。
class UserListener {
/**
* Initializes UserInventory for user with initial number of nets
*/
public function prePersist(LifecycleEventArgs $args) {
$em = $args->getEntityManager();
$user = $args->getEntity();
$inventory = new UserInventory();
$inventory->setUser($user);
$inventory->setNumNets($this->initialNets);
$em->persist($inventory); // if I comment out this line, it works but the inventory is not persisted
$em->flush();
}
}
それはUserInventory
は協会の所有側であるので、それが再び呼び出され、この関数が得られ、再びユーザーを保持しようとするかもしれませんか?これをどうすれば解決できますか?
「正しい」バンドルになっているので、ここに私のUserInventory
がアソシエーションを所有したいと思っています。私はUserBundle
を持っていますが、在庫クラスはそこにあるはずです。
UPDATE:Error/Log