执行php app/console doctrine:schema:从控制器symfony 2更新

JER*_*ERC 11 doctrine symfony

我想执行这个命令

php app/console doctrine:schema:update
Run Code Online (Sandbox Code Playgroud)

从没有使用execPHP功能的控制,

任何评论都将对我充分使用.

谢谢!!!

Sgo*_*kes 15

如果你在这里看,底部有一个如何从symfony代码中执行命令的例子.

还请注意最后的说明,说在代码中使用命令可能不是一个好主意.

如上所述,应谨慎使用以下代码.我不会在symfony doc中使用它作为statet的原因,但是它有效.

在控制器中使用以下代码时,您可以执行命令:

$kernel = $this->get('kernel');
$application = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
$application->setAutoExit(false);

$options = array('command' => 'list');
$application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
Run Code Online (Sandbox Code Playgroud)

如果需要输出,则必须使用实现OutputInterface的现有类,或根据需要创建自己的类.


JER*_*ERC 11

谢谢大家,

我用过这段代码

            $kernel = $this->get('kernel');
            $application = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
            $application->setAutoExit(false);
            //Create de Schema 
            $options = array('command' => 'doctrine:schema:update',"--force" => true);
            $application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
            //Loading Fixtures
            $options = array('command' => 'doctrine:fixtures:load',"--append" => true);
            $application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
Run Code Online (Sandbox Code Playgroud)

在这个链接中,有些信息可能对其他人有用

谢谢!!!