【发布时间】:2015-05-27 17:09:27
【问题描述】:
在 Symfony2 应用程序中,我有一个实体,需要在 pre-persist 上填充各种上下文属性(如用户 ID、调用它的页面等)
我认为要做到这一点,我需要添加一个可以访问“service_container”的原则事件侦听器,而提供这种访问权限的最佳方法是将“service_container”作为参数传递给该侦听器。
我有一个我想收听的特定实体,并且我不想触发侦听器与任何其他实体发生事件。
我们可以添加一个实体特定的监听器,文档可以在这里找到: http://docs.doctrine-project.org/en/latest/reference/events.html#entity-listeners - 但这没有提供如何传递参数的示例(我使用 PHP 注释来声明侦听器)。
我还尝试使用 JMSDiExtraBundle 注释,如下例所示: http://jmsyst.com/bundles/JMSDiExtraBundle/master/annotations#doctrinelistener-or-doctrinemongodblistener - 但是这种方式需要将监听器声明为非实体特定
有没有办法只为一个实体创建一个监听器,并让它可以访问容器?
【问题讨论】:
标签: php symfony doctrine-orm