有没有办法从树枝上替换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个参数,因为生成它的链接是通过提交来获得的。
答案 0 :(得分:26)
这可以解决您的问题:
{{ path(app.request.attributes.get('_route'),
app.request.query.all|merge({'sort': 'address'})) }}
它获取当前路由和所有查询参数,这些参数在添加之前与您想要更新的路径合并。
答案 1 :(得分:2)
Symfony / Twig path
函数接受可选参数。如果这些参数是路径的一部分,它们由路由器处理,但如果它们不是,它们将作为GET参数传递。
因此,如果您的相应路线是my_route
:
<a href="{{ path('my_route', {'param1':40, 'sort':'address'}) }}">address</a>