我正在使用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