【问题标题】:Custom entity listener resolver自定义实体侦听器解析器
【发布时间】:2014-09-30 21:48:27
【问题描述】:

我正在尝试设置不同的实体侦听器解析器,因为我想在几个生命周期回调中使用几个服务。我用谷歌搜索了一些答案,说它应该在配置中以类似于这个的方式设置:

doctrine:
    dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true
        entity_listener_resolver: {HERE!}

但是,当我这样做时,我收到以下错误:

Unrecognized options "entity_listener_resolver" under "doctrine.orm.entity_    
  managers.default"

此外,当我查看配置参考时,我在任何地方都没有看到这样的选项或设置它的选项:http://symfony.com/doc/current/reference/configuration/doctrine.html

那么如何更改实体侦听器解析器?

我使用的是最新的 Sf 2.5 版本。

【问题讨论】:

    标签: symfony events doctrine-orm listener


    【解决方案1】:

    我在使用 "doctrine/doctrine-bundle": "~1.2" 时遇到了同样的问题。

    你有两个选择。

    1) 使用doctrine/doctrine-bundle 1.3 Beta,其中存在key entity_listener_resolver。

    2) 或者使用以下要点在不使用密钥的情况下使其工作:https://gist.github.com/vadim2404/9538227

    更多信息:http://egeloen.fr/2013/12/01/symfony2-doctrine2-entity-listener-as-serice/

    感谢来自 irc 频道的人。

    【讨论】:

    • 总结链接页面的内容。仅仅链接到文档并不能作为一个好的答案,因为该页面将来可能无法加载或可能有不同的内容。
    【解决方案2】:

    您只能在 services.yml 中针对特定捆绑使用它:

        orm:
            entity_listener_resolver: {your_entity_listener_resolver}
    

    但在 config.yml 文件中,您需要为特定实体管理器设置实体侦听器解析器,例如默认的:

        orm:
        entity_managers:
            default:
                entity_listener_resolver: {your_entity_listener_resolver}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      相关资源
      最近更新 更多