2013-08-28 21 views
0

我一直在试图将多个路由映射到默认控制器,并且它似乎没有像预期的那样工作。在Symfony2中,如何在默认控制器中使用多个路由

我用在我的控制器注释:

/** 
* @Route("/", name="index_controller"); 
* @Template("SeoSlinkyBundle:Default:index.html.twig"); 
*/ 
public indexAction() {} 

,但我想这样做:

/** 
* @Route("/", name="index_controller"); 
* @Route("/{timeoption}", name="index_controller"); 
* @Template("SeoSlinkyBundle:Default:index.html.twig"); 
*/ 
public indexAction($timeoption = "today") { 
    echo $today; 
    exit; 
} 

的实际工作,如果我去:

http://myapp/hello

控制器回应“你好”

,但如果我去

http://myapp/

控制器应回声 “今天”

而是我得到这个错误:

无法导入资源“的/ usr /共享/ www/myapp/src/MyAppBundle/Controller /“从”/usr/share/www/myapp/app/config/routing.yml“。

这是任何帮助将不胜感激修改routing.yml

my_app: 
    resource: "@MyAppBundle/Controller/" 
    type:  annotation 
    prefix: /
imag_ldap: 
    resource: "@IMAGLdapBundle/Resources/config/routing.yml" 

的内容!

回答

2

我的猜测是因为你有2个同名错误的路线

你应该尝试:

/** 
* @Route("/", name="index_controller"); 
* @Route("/{timeoption}", name="index_controller_timeoption"); 
* @Template("SeoSlinkyBundle:Default:index.html.twig"); 
*/ 
public indexAction($timeoption = "today") 
{ 
    echo $today; 
    exit; 
} 
+0

正是我的建议 - 你快:) – nifr

+0

这使得有很大的意义!我永远不会想到这一点,它非常简单,让我感觉有点愚蠢。 – ILikeTacos

相关问题