2015-09-25 4 views
0

У меня есть ситуации, когда у меня есть несколько менеджеров сущностей, какService аргумент, основанный на командной консоли аргумент

entity_manager_en 
    entity_manager_us 
    entity_manager_pl 

т.д.

Каждый менеджер объект относится к базе данных с различным содержанием языка.

У меня есть команда, где требуется аргумент lang (language). У меня также есть служба, которая в качестве аргумента конструктора требует диспетчера сущностей.

Возможно ли каким-либо образом создать динамический менеджер объектов на основе lang, заданный в команде, и передать его в качестве аргумента службы во время его создания?

Я попытался с ConsoleCommandEvent но выстреливает до ввода содержат аргументы ...

+0

Как насчет того, чтобы показать нам код, который у вас уже есть и что вы пробовали? – tchap

ответ

0

Если вы хотите позвонить менеджеру лица в execute метод в вашей команде вы можете получить аргумент и добавить его в getManager() метод:

protected function execute(InputInterface $input, OutputInterface $output) 
{ 
    $lang = $input->getArgument('lang'); 

    $em = $this->getContainer()->get('doctrine')->getManager('entity_manager_' . $lang); 

    ... 
}