默认/路由中可选的get参数(带斜杠)

时间:2014-08-27 14:34:46

标签: php symfony routing

我网站上的主页是一个空链接,如:

www.randomlink.com/

那是具有"/"路线的控制器。问题是我必须在这里使用get参数,根据以下模式:

key1/value1/key2/value2

我在表单提交上添加这些参数,表单重定向回主页面。

问题是,正如你所看到的,我得到:

www.randomlink.com/key1/value1/key2/value2

因此它打开了key1控制器,而不是默认控制器。


/**
 * Display dashboard
 *
 * @Route("/{path}", 
 *        name="dashboard",
 *        defaults={"path" = "-1"},
 *        requirements={"path" = ".+"})
 * @Template()
 */
public function displayAction($path, Request $request)
{
    if($_POST)
    {
        // add get parameters to $path

        return $this->redirect($this->generateUrl('dashboard', ['path' => $path]));
    }

    // do something
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的路由配置顺序可能不正确:请参阅"Earlier Routes always Win" in the docs

解决方法:如何使用查询字符串,如:www.randomlink.com/?path=key1/value1/key2/value2,然后$request->query->get('path')