Symfony路由要求被忽略

时间:2018-09-30 10:50:39

标签: symfony routing symfony-3.4 symfony3.x symfony-routing

在Symfony 3.4应用程序中,我具有以下路由定义

/**
 * @Route("/{_locale}", name="homepage")
 *     requirements={
 *         "_locale":"de"
 *     }
 */
public function indexAction( Request $request, $_locale )
{ ... }

调用网址时

[base]/en

它仍然只是进入路由而忽略_locale仅是'de'的要求。将需求语句中的“:”切换为“ =”无济于事。

到目前为止,我唯一的其他路线定义是

/**
 * @Route("/", name="base")
 */
public function baseAction(Request $request)
{
    return $this->redirectToRoute( 'homepage', array('_locale' => 'de') );
}

任何想法都非常受欢迎。

1 个答案:

答案 0 :(得分:1)

您可以看到here,Route批注的“ requirement”部分应该在Route批注本身之内,因此在括号内。编写方式不被视为注释的一部分。

尝试

/**
 * @Route("/{_locale}", name="homepage",
 *     requirements={
 *         "_locale": "de"
 *     })
 */
public function indexAction( Request $request, $_locale )
{ ... }

编辑:也许Symfony 3.4文档中的this示例比我最初发布的链接要好。请注意,路线注释起始行7是如何用括号第15行关闭的。