如何在另一个命令中使用argumemt调用cache:clear命令 - Symfony3

时间:2016-07-01 10:09:09

标签: php symfony

我知道我可以在另一个命令中运行命令。 像这个例子..

    $command = $this->getApplication()->find('cache:clear');
    $arguments = array();
    $input = new ArrayInput($arguments);
    $returnCode = $command->run($input, $output);
    $text = '';
    if ($returnCode != 0) {
        $text .= 'successfully...';
    }

    $output->writeln($text);

但是当我尝试运行缓存:clear命令及其选项 -

$arguments = array(
        '--env=prod' => true
    );

我收到以下错误

[Symfony\Component\Console\Exception\InvalidOptionException]
  The "--env=prod" option does not exist.

如何运行此命令?

2 个答案:

答案 0 :(得分:0)

您应该像以下一样使用它:

$arguments = array(
    '--env' => 'prod',
);

答案 1 :(得分:0)

只有在传递选项而不是参数时才需要

--

要让你的命令能够考虑你的论点,只需使用:

$arguments = ['env' => 'prod'];

如果它不起作用,只需使用$input->setArgument('env', 'prod');

即可