我有一个奇怪的错误。我试图在系统中执行Symfony doctrine控制台命令。我确实设法在系统内执行'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,参数不够。据我所知,只有'name'是这个命令寻找的唯一强制参数。看看下面的代码,
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);
}
我在这里感到惊讶,因为这样一个简单的事情似乎无法奏效。任何人都可以请告诉我这里可能缺少的东西。
非常感谢提前。
答案 0 :(得分:2)
第一个参数需要是您正在调用的命令。
取自docs ..
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);
// ...
}