抱怨我的英语不好:)
我有app / config / services.yml:
page_listener:
class: AppBundle\Entity\PageListener
arguments: [ "@service_container" ]
tags:
- { name: doctrine.orm.entity_listener }
在AppBundle \ Resources \ config \ doctrine \ Page.orm.yml:
entityListeners:
PageListener:
postFlush: [postFlush]
preFlush: [preFlush]
在AppBundle \ Entity \ PageListener中:
namespace AppBundle\Entity;
use Cocur\Slugify\Slugify;
use Doctrine\ORM\Event\PreFlushEventArgs;
use Doctrine\ORM\Event\PostFlushEventArgs;
class PageListener
{
public function __construct($container){ /* nothing here */ }
public function preFlush(Page $page, PreFlushEventArgs $event){ ... }
public function postFlush(Page $page, PostFlushEventArgs $event){ ... }
}
现在我做的时候
$em->persist($page);
$em->flush();
preFlush
执行必须执行的操作,但postFlush
不是事件开始:/即使我在postFlush
中放置退出或类似内容也没有任何反应。
我会忘记什么或什么?有什么建议吗?
答案 0 :(得分:1)
我对此并不完全了解,但我知道您在注册活动时需要定义活动。
my.listener2:
class: Acme\SearchBundle\EventListener\SearchIndexer2
tags:
- { name: doctrine.event_listener, event: postPersist, connection: default }
请参考此链接:
答案 1 :(得分:0)
这可能取决于您的Symfony或Doctrine版本。粘贴你的composer.json