我有几个实体管理器,如
entity_manager_en
entity_manager_us
entity_manager_pl
等。
每个实体管理器引用不同语言内容的数据库。
我有一个命令,其中需要的参数是lang(语言)。我也有服务,作为构造函数参数需要实体管理器。
是否有可能以某种方式创建基于命令中给定的lang的动态实体管理器,并将其作为我的服务参数传递,而它正在创建?
我尝试使用ConsoleCommandEvent,但它在输入包含参数之前触发…
如果您想在命令中调用execute
方法中的实体管理器,您可以获得参数并将其添加到getManager()
方法中:
protected function execute(InputInterface $input, OutputInterface $output)
{
$lang = $input->getArgument('lang');
$em = $this->getContainer()->get('doctrine')->getManager('entity_manager_' . $lang);
...
}