访问config.php中的实体管理器

时间:2017-12-14 10:51:41

标签: php symfony symfony-3.2

在app / config / config.php中,我们可以:

$container->loadFromExtension('doctrine', array(
    'dbal' => array(
        'driver'   => 'pdo_mysql',
        'host'     => '%database_host%',
        'dbname'   => '%database_name%',
        'user'     => '%database_user%',
        'password' => '%database_password%',
    ),
));

但是可以在此文件中获取实体管理器吗?

$container->getDoctrine()

返回:

  

尝试调用名为" getDoctrine"的未定义方法。班级   " Symfony的\元器件\ DependencyInjection \ ContainerBuilder"

$container->get('doctrine')

返回:

  

您已请求不存在的服务" doctrine"

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

返回:

  

您已请求不存在的服务   " doctrine.orm.entity_manager"

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。您无法在构建步骤中访问服务。 您可以使用CompilerPass来访问服务并调用方法或别名。

或者,如果您只想将EntityManager传递给服务,请使用Reference类。