Symfony强制路由默认参数始终显示在url中

时间:2016-02-01 17:50:21

标签: php symfony

我目前面临一个问题,我不知道如何解决。 对于路线,我可以使用以下注释:

read.clipboard

这条路线可以通过以下方式到达:

  • /富/ HelloWorld的
  • /富/酒吧
  • /富

最后一个案例存在问题。我希望选择始终在URL中可见,即使它是默认选择。这样的事情有可能吗?

1 个答案:

答案 0 :(得分:1)

这样做的一种方法是:

/**
 * @Route("/foo/{choice}", name="foo_route")
 */
function fooAction($choice = NULL) {
    if ($choice === NULL) {
        return $this->redirectToRoute('foo_route', ['choice' => 'bar']);
    }
}

即,删除默认值,允许$choice === NULL,并强制重定向为“默认”值。

或者,您可以在页面中嵌入JavaScript逻辑以使用历史记录操作来修改URL。这样可以避免强制重定向。但是,强制重定向可能更容易,并且保留了完全在PHP中处理它的逻辑。

相关问题