代码之家  ›  专栏  ›  技术社区  ›  yevg

在Symfony服务中获取路由名称[duplicate]

  •  -1
  • yevg  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  6
  •   Phantom    6 年前

    如果使用symfony4和autowire( https://symfony.com/doc/current/service_container/autowiring.html ),您可以注入请求栈服务,如下所示:

    use Symfony\Component\HttpFoundation\RequestStack;
    
    class Myservice {
    
        private $u;
    
        public function __construct(Utilities $u, RequestStack $requestStack) {
    
            $this->u = $u;
    
            $route = $requestStack->getCurrentRequest()->get('_route');
        }
    }