我一直在尝试将多个路由映射到默认控制器,但它似乎没有按预期工作。
我正在我的控制器中使用注释:
/**
* @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"
非常感谢任何帮助!
答案 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;
}