0
被解僱當我將數據插入User
實體,所以我得到兩條記錄插入Dummy
實體是罰款在這裏用戶得到以下解僱預和後事件。我需要知道的是,我如何檢查哪個事件被觸發,以便我可以在setHow()
方法中使用它?檢查該事件在事件訂閱
$dummy->setHow(......);
預期結果在虛擬表:
id createdOn how
1 2014-10-16 12:12:00 prePersist
2 2014-10-16 12:12:01 postPersist
訂戶:
class UserPost implements EventSubscriber
{
public function getSubscribedEvents()
{
return array('prePersist', 'postPersist');
}
public function prePersist(LifecycleEventArgs $args)
{
$this->index($args);
}
public function postPersist(LifecycleEventArgs $args)
{
$this->index($args);
}
public function index(LifecycleEventArgs $args)
{
$em = $args->getEntityManager();
$entity = $args->getEntity();
if ($entity instanceof User) {
$dummy = new Dummy();
$dummy->setCreatedOn(new \DateTime('now'));
$dummy->setHow(.............);
$em->persist($dummy);
$em->flush();
}
}
}
服務:
Service:
entity.subscriber.user_post:
class: Site\MainBundle\EventSubscriber\Entity\UserPost
tags:
- { name: doctrine.event_subscriber }
爲什麼不乾脆像'$這個 - >指數的方法調用傳遞事件的名稱(的$ args, 'prePersist')'? – qooplmao 2014-10-16 15:06:35
@Qoop - 我覺得可以喝杯咖啡了!請創建一個答案,以便我可以接受它。感謝您的解決方案。 – BentCoder 2014-10-16 15:13:27
過於複雜的問題。我一直這樣做。 – qooplmao 2014-10-16 15:21:09