在Symfony命令类中生成路由

时间:2018-12-13 16:40:20

标签: symfony routing command

我正在使用Symfony 4.2.1,无法以某种方式不使用路由器的generate()方法:

<?php

namespace App\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Input\InputArgument;

use Symfony\Component\Routing\RouterInterface;

class NewAcceptedOrderCommand extends Command
{

/**
 * @var RouterInterface $router
 */
private $router;


public function __construct(
    RouterInterface $router
) {
    $this->router = $router;

    parent::__construct();
}

protected function configure()
{
    $this
        ->setName('address:new')
        ->setDescription('Get adresses by Status ID')
        ->setHelp('Get adresses by Status ID')
        ->addArgument('id', InputArgument::REQUIRED, 'Status ID');

}

protected function execute(InputInterface $input, OutputInterface $output)
{
    $url = $this->router->generate('adresses_index');
    // SOME more Code
}

}

我之前注入了各种其他服务和接口(EntityManagerInterface,我的Logservice等)

但是我总是得到

  

无法像这样为命名路由“ adresses_index”生成URL   路由不存在。

但是此路由确实存在,我已经使用 php bin / console debug:router 进行了检查,并且还在其他地方使用了它。我从这里开始使用全局方法:https://symfony.com/doc/current/console/request_context.html#configuring-the-request-context-globally

2 个答案:

答案 0 :(得分:0)

enter image description here

我一开始就想确保安全,并在每个操作中都添加了注释“方法”-必须将其取消设置(任意)。以后就可以了。

答案 1 :(得分:0)

不要忘记配置路由器

df.to_csv(filename, date_format='%Y-%m-%d')