在Symfony服务中获取路线名称

时间:2018-09-06 20:19:34

标签: php symfony php-7 symfony4 symfony-routing

我尝试在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');

..但不确定在哪里/如何/以何种方式使用它。

也许还有一个更简单的方法。

1 个答案:

答案 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');
    }
}