如何查看错误$ application-> run($ input,$ output);

时间:2017-09-27 09:51:53

标签: symfony

我创建了一个控制器来更新symfony中的数据库,因为我无法使用命令行

    /**
 * @Route("admin/database/update", name="adyax_database")
 */
public function refreshdatabaseRoutes()
{

    ini_set('memory_limit', '-1');
      ini_set('max_execution_time', 300);
    $kernel = $this->container->get('kernel');

    $application = new Application($kernel);
    $application->setAutoExit(false);

    $input = new ArrayInput([
        'command' => 'doctrine:schema:update --force',

    ]);

    $output = new BufferedOutput();
    $application->run($input, $output);

    return $this->redirectToRoute('homepage');
}

我认为它不起作用但没有给出错误。我怎么能理解是否有错误?

1 个答案:

答案 0 :(得分:1)

首先,如果你想获得命令的结果,你应该使用$output变量。您可以使用$output->fetch()获取输出内容。

无论如何,你在$input中犯了一个错误。在command数组的元素中,应该只有命令的名称,所以它只是doctrine:schema:update。任何参数都应作为此数组的单独元素传递。如果参数未采用任何值(例如--force),只需将true设置为值。

所以最后你应该没问题:

$input = new ArrayInput([
    'command' => 'doctrine:schema:update',
    '--force' => true,
]);