Symfony2路由变为查询字符串而不是屏蔽路由

时间:2012-10-06 14:12:25

标签: symfony twig routes

在Symfony2 TWIG中,尝试生成这样的路径时:

<a href="{{ path('folder_new', { 'folder': folder.id }) }}">

我没有得到我期望的路线

这是我的预期:

http://localhost/site/web/app_dev.php/Media/folder/new/2

这是我实际上从path()命令

得到的
http://localhost/site/web/app_dev.php/Media/folder/new?folder=2

为什么我将其格式化为标准的querystring(get)变量而不是路由?

1 个答案:

答案 0 :(得分:2)

原因是我将变量命名为错误。

folder_new:
    pattern:  /new/{parent}
    defaults: { _controller: "AcmeBundle:Folder:new", parent : NULL }

在我的路由中,我调用了变量parent而不是folder

正确path()应该是这样的:

<a href="{{ path('folder_new', { 'parent': folder.id }) }}">

所以,我知道当Symfony2找不到路由参数匹配传递给path()函数的变量时,它将变量附加到标准查询字符串$__GET)格式,而不是生成错误消息。

如果出现错误消息,会发现它更快,但我看到使用它的方式。

干杯! =)