我在试着对orm理论做一些可选的依赖。根据配置,我希望在alsatian_form.form_event_subscriber.extensible服务中使用setter注入来注入"doctrine.orm.entity_manager“。
<?php
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
class AlsatianFormExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$configFormBundle = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
if($configFormBundle['extensible_entity']['enabled']){
$definition = $container->getDefinition('alsatian_form.form_type.extensible_entity');
$definition->setPublic(true);
$definition->addTag('form.type');
$container->getDefinition('alsatian_form.form_event_subscriber.extensible')
->addMethodCall('setEntityManager', array("@doctrine.orm.entity_manager")); // <- here I tried with the same syntax as in YAML configuration files.
}
}
}我想这一定是语法问题,因为我收到的是字符串'@doctrine.orm.entity_manager‘,而不是实体管理器...
发布于 2016-07-26 01:34:03
刚刚找到了答案here:
use Symfony\Component\DependencyInjection\Reference;
container->getDefinition('alsatian_form.form_event_subscriber.extensible')
->addMethodCall('setEntityManager', array(new Reference("doctrine.orm.entity_manager")));我希望它能帮助一些人。
https://stackoverflow.com/questions/38574019
复制相似问题