Symfony2路由变为querystring,而不是屏蔽路由



在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

为什么我将它格式化为标准查询字符串(get)变量而不是路由?

原因是我给变量命名错误。

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)格式附加变量,而不是生成错误消息。

如果有错误消息,我会更快地找到它,但我看到了这样做的用处。

干杯

最新更新