Php Symfony2:如何获取路由前缀
我想做的是,我有一个管理面板,我可以访问与'管理员'前缀,但它是可访问的,只有当你走向配置页面第一 为此,我创建了一个侦听器事件,如下所示:Php Symfony2:如何获取路由前缀,php,symfony,router,Php,Symfony,Router,我想做的是,我有一个管理面板,我可以访问与'管理员'前缀,但它是可访问的,只有当你走向配置页面第一 为此,我创建了一个侦听器事件,如下所示: <?php namespace Config\ConfigBundle\Listener; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony
<?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”前缀:
if (0 == strpos($route, 'admin')) {
// perform redirect
}
谢谢,我添加==>&&$route!='adminConfig'以避免循环,但现在,我得到的ressouces作为css和东西没有加载…我得到的302错误。。。