如何从前端按钮放置控制台命令?

时间:2018-05-18 11:15:08

标签: php symfony controller

我是Symfony的新手。无论如何,我找到了建立控制台命令的方法。因此,需要从前端访问此命令。

所以我认为,我需要将命令用于服务。我遵循了这个link。 所以这应该创建。但现在我不知道如何将此服务连接到实际的路由呼叫。 我已经形成了这样一条路线:

command:
    path:               /command
    defaults:
        _controller:    AppBundle:Command:activate
    requirements:
        language:       '%pimc.akeneo_cms.frontend.language.available%'

我创建了一个名为CommandController的新控制器,只有一个名为activateAction()的方法。 而且我不知道在actiavateAction中放什么?

有人可以帮助我吗?我在正确的道路上吗?

2 个答案:

答案 0 :(得分:2)

如果您想在控制器的操作中运行命令,可以使用Application

$application = new Application($this->get('kernel'));
$input = new ArrayInput(array('command' => 'your:command'));
$output = new BufferedOutput();
$application->run($input, $output);

如果您想检查命令的输出,可以使用$output->fetch()

答案 1 :(得分:2)

您可以按照以下步骤操作:

  • 创建控制台命令
  • 使用操作方法和路径创建控制器
  • 创建要从控制器的方法操作
  • 呈现的树枝模板
  • 在模板内部,创建一个按钮
  • 使用ajax,在按钮单击时,向该控制器的方法操作(或其他方法操作)发出请求
  • 在方法内部,调用控制台命令,解释为here