实体的听众
编辑本页警告:您正在浏览版本文档欧宝官网下载app1.12.x它不再被维护了。
如果您的一些项目仍在使用此版本,请考虑升级。
实体的听众
作为服务的实体侦听器必须向实体侦听器解析器注册。在实体类的注释之上,您必须用标记服务doctrine.orm.entity_listener
它被自动添加到解析器。使用(可选)entity_manager
属性指定应该向哪个实体管理器注册。
完整的例子:
12 3 4 5 6 7 8 9 10 11 12 13
<?php/ / User.php使用学说\ORM\映射作为ORM;/ * * *@ORM* \实体@ORM\ EntityListeners ({UserListener "}) * /类用户{/ /……}
- YAML
- XML
1 2 3 4 5 6 7 8
服务:user_listener:类:\ UserListener标签:#以下最小配置-{名称:doctrine.orm.entity_listener}或者,你可以选择给出实体管理器的名称,如下所示#-{名称:doctrine.orm。实体_listener, entity_manager: custom }
从doctrine/orm 2.5和doctrine bundle 1.5.2开始,你可以从服务定义中声明所有选项,而不是在实体上注册实体监听器:
- YAML
- XML
12 3 4 5 6 7 8 9 10 11 12
服务:user_listener:类:\ UserListener标签:-名称:doctrine.orm.entity_listener事件:preUpdate实体:应用实体\ \用户# entity_manager属性是可选的entity_manager:自定义# method属性是可选的方法:validateEmail
如果不指定方法
属性时,它返回到订阅的事件名称。
从Doctrine bundle 1.12开始,如果此方法不存在,但如果您的实体侦听器是可调用的,则它将返回到__invoke ()
方法。
另请参阅https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#entity-listeners获取Symfony所需的实体监听器和解析器的更多信息。ob娱乐下载
惰性实体监听器
您可以使用懒惰的
属性,以确保侦听器服务仅在实际使用时实例化。
- YAML
- XML
1 2 3 4 5
服务:lazy_user_listener:类:\ UserListener标签:-{名称:doctrine.orm.entity_listener,懒惰:真正的}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。