【问题标题】:How to put console command from a frontend button?如何从前端按钮放置控制台命令?
【发布时间】:2018-05-18 19:34:51
【问题描述】:

我是 Symfony 的新手。无论如何,我已经找到了构建控制台命令的方法。所以这个命令需要可以从前端访问。

所以在我看来,我需要将命令投入使用。我关注了这个link。 所以应该创建这个。但现在我不知道如何将此服务连接到实际的路由调用。 我已经形成了这样的路线:

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

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

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

【问题讨论】:

  • 这是一种奇怪的做法。您的指挥车通过依赖注入调用服务,与您的控制器操作调用的服务相同。

标签: php symfony controller


【解决方案1】:

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

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

【讨论】:

  • 好吧,它不起作用。但这是因为我的命令而发生的,这需要大约 30 分钟才能完成。但从您的逻辑角度来看,一切正常。
【解决方案2】:

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

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

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

【讨论】:

  • 也感谢您抽出宝贵时间回复我。
猜你喜欢
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
相关资源
最近更新 更多