在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
)格式附加变量,而不是生成错误消息。
如果有错误消息,我会更快地找到它,但我看到了这样做的用处。
干杯