【问题标题】:Symfony Routing Requirements ignoredSymfony 路由要求被忽略
【发布时间】:2018-09-30 10:50:39
【问题描述】:

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

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

调用url时

[base]/en

它仍然只是路由到路由中,而忽略了 _locale 仅是 'de' 的要求。将需求语句中的“:”切换为“=”没有帮助。

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

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

非常欢迎任何想法。

【问题讨论】:

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


    【解决方案1】:

    如您所见here,Route 注释的“要求”部分应该在 Route 注释本身内,因此在括号内。您编写它的方式,它不被视为注释的一部分。

    试试

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

    编辑:也许 Symfony 3.4 文档中的 this 示例比我最初发布的链接更好。请注意第 7 行开始的 Route 注释是如何被第 15 行括号括起来的。

    【讨论】:

    • 非常感谢。这正是问题所在。
    猜你喜欢
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2013-12-29
    • 2020-10-27
    相关资源
    最近更新 更多