无法从Symfony2中的控制器调用命令

时间:2014-10-11 19:08:18

标签: symfony

我正在尝试从控制器运行命令,但它不起作用。这是我的代码:

            $email = $request->get('email');
            if (empty($email))
                $email = $request->get('nombres');
            if (empty($password))
                $password = '123456';                
            $application = new Application($this->container->get('kernel'));
            $application->setAutoExit(false);                 
            $input = new ArrayInput(array(
                "command" => "fos:user:create",
                "username" => $username,
                "email" => $email,
                "password" => $password));

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

            var_dump(stream_get_contents($output->getStream()));
            die();

只是它什么都不做,#retval是1而$ output var是空的。

任何帮助将不胜感激 感谢

的Jaime

1 个答案:

答案 0 :(得分:1)

基本上你不应该在控制器中使用命令。控制台命令和控制器是两个不同的传递层。

请使用服务(因此您可以在控制器和命令中使用它)用于fos:user:create您可以使用类似的东西:

 $manipulator = $this->container->get('fos_user.util.user_manipulator');
 $manipulator->create($username, $password, $email, $active = true, $superadmin = false);