我尝试在Symfony 4服务中获取当前路线的名称。
routes.yaml
test-route:
path: /test
controller: App\Controller\Test::test
服务
class Myservice {
private $u;
public function __construct(Utilities $u){
$this->u = $u;
$route = getRouteSomehow(); // should return "test-route"
}
}
我发现这段代码可以抓住路线:
$requestStack->getCurrentRequest()->get('_route');
..但不确定在哪里/如何/以何种方式使用它。
也许还有一个更简单的方法。
答案 0 :(得分:1)
如果使用symfony4和autowire(https://symfony.com/doc/current/service_container/autowiring.html),则可以按以下方式注入request_stack服务:
use Symfony\Component\HttpFoundation\RequestStack;
class Myservice {
private $u;
public function __construct(Utilities $u, RequestStack $requestStack) {
$this->u = $u;
$route = $requestStack->getCurrentRequest()->get('_route');
}
}