在Symfony2中,如何在默认控制器中使用多个路由

时间:2013-08-28 14:50:04

标签: symfony

我一直在尝试将多个路由映射到默认控制器,但它似乎没有按预期工作。

我正在我的控制器中使用注释:

/**
 * @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/share/www/myapp/app/config/routing.yml”导入资源“/ usr / share / www / myapp / src / MyAppBundle / Controller /”。

这些是routing.yml的内容

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

非常感谢任何帮助!

1 个答案:

答案 0 :(得分: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;
 }