Я использую Symfony 2 с Doctrine 2. У меня есть UserListener
( страница документации Symfony ), которая прослушивает события PrePersist
& PreRemove
для объектов User.Сохраняя пользователя, я хочу создать экземпляр UserInventory
для User
.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
, но я не думаю, что там должен быть класс Inventory.
ОБНОВЛЕНИЕ : Ошибка / Журнал