Как выполнить команду doctrine:generate:entities внутри системы?

У меня странная ошибка. Я пытаюсь выполнить команды консоли доктрины Symfony в системе. Мне удалось выполнить «doctrine:mapping:import» в системе без каких-либо проблем. Посмотрите на мой код ниже,

protected function execute(InputInterface $input, OutputInterface $output)
{
    $import_arguments = array(
        '--force' => true,
        'bundle' => 'TestConsoleCommandBundle',
        'mapping-type' => 'yml',
    );
    $input = new ArrayInput($import_arguments);
    $command = $this->getApplication()->find('doctrine:mapping:import');
    $command->run($input, $output);  
}

Но когда я выполняю команду "doctrine:generate:entities" в системе, она говорит RuntimeException , Недостаточно аргументов. Насколько мне известно, только "имя" является единственным обязательным аргументом, который ищет эта команда. Посмотрите на мой код ниже,

protected function execute(InputInterface $input, OutputInterface $output)
{
    $command = $this->getApplication()->find('doctrine:generate:entities');   
        $arguments = array(
            '--path' => "src/ESERV/MAIN/ActivityBundle/Entity",
            '--no-backup' => 'true',
            'name' => 'ESERVMAINActivityBundle'

        );
        $input = new ArrayInput($arguments);
        $command->run($input, $output);  
}

Я удивлен здесь, потому что такая простая вещь, кажется, не работает. Может кто-нибудь, пожалуйста, скажите мне, что я, возможно, отсутствует здесь.

Спасибо заранее.


person Anjana Silva    schedule 16.06.2014    source источник


Ответы (1)


Первым аргументом должна быть команда, которую вы вызываете.

Взято из документов..

protected function execute(InputInterface $input, OutputInterface $output)
{
    $command = $this->getApplication()->find('demo:greet');

    $arguments = array(
        'command' => 'demo:greet',
        'name'    => 'Fabien',
        '--yell'  => true,
    );

    $input = new ArrayInput($arguments);
    $returnCode = $command->run($input, $output);

    // ...
}
person qooplmao    schedule 16.06.2014
comment
Ух ты!! Вы сэкономили много моего времени. Снимаю шляпу, приятель! Мне вообще не хватало первой «командной» клавиши. Другая команда работала до того, как «команда» использовалась в качестве ключа в массиве аргументов, но не эта. Еще раз большое спасибо :) :) - person Anjana Silva; 16.06.2014