簡體   English   中英

Symfony2:如何獲取路由前綴

[英]Symfony2: How to get the route prefix

我想知道的是,我有一個管理面板,可以使用“ admin”前綴訪問,但只有先進入配置頁面后才能訪問。

為此,我創建了一個Listener事件,如下所示:

<?php

namespace Config\ConfigBundle\Listener;

use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;

class ConfigListener {

public function __construct(ContainerInterface $container){

    $this->router = $container->get('router');
    $this->em = $container->get('doctrine')->getEntityManager();;

}

public function onKernelRequest(GetResponseEvent $event)
{
    $route = $event->getRequest()->attributes->get('_route');
    if ( $route == 'admin') {

        $config = $this->em->getRepository('ConfigBundle:Config')->findConfig();
        if($config == null){
            $event->setResponse(new RedirectResponse($this->router->generate('adminConfig')));
        }   
    } 
}

}

這段代碼可以正常工作,但是,它只能獲取名為“ admin”的路由,而我想要的是檢查此路由的前綴(如果它等於“ admin”,以重定向到配置頁面)。

我缺少任何東西,我不知道該如何解決...

您可以使用以下代碼段檢查路由是否包含“ admin”前綴:

if (0 == strpos($route, 'admin')) {
    // perform redirect
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM