Symfony2:如何访问扩展内的服务';s load()方法?

Symfony2:如何访问扩展内的服务';s load()方法?,symfony,dependency-injection,doctrine,Symfony,Dependency Injection,Doctrine,有可能在包扩展中获得条令服务吗 我可以访问容器,但无法获得条令服务 ... class UltroExtension extends Extension { public function load(array $configs, ContainerBuilder $container){ $dm = $container->get('doctrine_mongodb'); ... } } 我得到了这个错误:服务定义“doctrine\u mong

有可能在包扩展中获得条令服务吗

我可以访问容器,但无法获得条令服务

...
class UltroExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container){
        $dm = $container->get('doctrine_mongodb');
    ...
    }
}

我得到了这个错误:服务定义“doctrine\u mongodb”不存在。

容器还没有被构建/编译-这就是为什么您只得到传递给
load()
方法的
ContainerBuilder
对象

您无法从构建器中获取服务对象,因为此时它不包含服务,而只包含服务定义

改用。更多信息可在文档一章中找到

也许你的问题也可以用解决