6

有没有办法从树枝中替换 GET 参数值?

例如,我在这个地址有一个页面:

http://localhost/app_dev.php/test/?param1=40&sort=name

在我的树枝中,我想建立 3 个这样的链接:

http://localhost/app_dev.php/test/?param1=40&sort=name 
http://localhost/app_dev.php/test/?param1=40&sort=address 
http://localhost/app_dev.php/test/?param1=40&sort=code 

现在我再次在 URL 的末尾添加了“&sort”参数,但这个解决方案实际上是一个“补丁”,它很烂!

<a href="{{app.request.requesturi}}&sort=address">address</a>

在这个例子中我只有 2 个参数,但实际上我有大约 6 个参数,因为生成它的链接是通过提交一个 .

4

2 回答 2

30

这应该可以解决您的问题:

{{ path(app.request.attributes.get('_route'),
   app.request.query.all|merge({'sort': 'address'})) }}

它获取当前路由和所有查询参数,这些参数在附加之前与您要更新的参数合并。

于 2013-03-12T14:14:24.670 回答
2

Symfony/Twigpath函数接受可选参数。如果这些参数是路由的一部分,它们由路由器处理,但如果不是,它们作为 GET 参数传递。

因此,例如,如果您的相应路线是my_route

<a href="{{ path('my_route', {'param1':40, 'sort':'address'}) }}">address</a>
于 2013-03-12T14:03:55.250 回答