【问题标题】:How do you access the Doctrine service in an imported parameters file in Symfony2?在 Symfony2 中如何访问导入参数文件中的 Doctrine 服务?
【发布时间】:2011-08-10 09:26:00
【问题描述】:

我最近问了一个关于如何在 Symfony2 中加载自己的参数的问题,在这里How do you load config settings from the database in Symfony2? 得到了回答,但我现在需要知道如何实际访问导入文件中的数据库。

我尝试过使用:

$container->get('doctrine.orm.entity_manager');

不幸的是,然后我收到 “服务定义教义.orm.entity_manager 不存在。”错误。

谁能帮忙?

【问题讨论】:

    标签: doctrine-orm symfony


    【解决方案1】:

    您的代码应该可以工作。

    $this->container->get('doctrine.orm.entity_manager');
    

    但只有在启用 Doctrine 的情况下。

    你的内核中有 Doctrine Bundle 吗?您是否取消了 config.yml 中的学说设置的注释?

    【讨论】:

    • 您好 Damien,感谢您的帮助。该捆绑包已设置并在我的整个应用程序中使用。在我的 /app/config/config.yml 文件中,我正在导入 /app/config/parameters.php 文件。在这个文件中,我希望能够使用$container->setParameter() 函数从数据库中加载一些参数。我不确定此时是否已加载 Doctrine Bundle。有没有其他方法可以将我的设置从数据库提供给我的整个应用程序?
    • 好吧,我的回答远非如此。也许您可以尝试在内核初始化之后插入您的自定义配置?您可以监听一些事件,例如 kernel.request (RequestListener::onKernelRequest)。
    • 运行php app/console container:debug检查Doctrine2服务是否正在加载,是否有相应的命名。
    • Adam 我和你有同样的问题,你找到解决办法了吗?
    • clang1234,你应该调用$this->get('doctrine')->getEntityManager();,问题中的例子已经过时了,SF2 API已经改变了。
    【解决方案2】:

    询问并环顾了一段时间后,我发现在 Symfony 仍在配置其服务时访问学说的唯一解决方案是使用 this bundle。查看自述文件,因为它描述了我们都遇到的场景的解决方案。

    【讨论】:

    • 您好,clan1234,很抱歉没有尽快回复。我已经离开了。感谢您的答复。我去看看。
    猜你喜欢
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多