在使用Twig的Symfony 2.7应用程序中,我想创建生成分页按钮。
我有一个搜索页面,带有可选的GET参数:
空:
万维网。[...]。com /搜索
按名称搜索:
www。[...]。com / search ?name = john
按名称搜索并按相关性排序:
www。[...]。com / search ?name = john& sort = relevant
按名称搜索并按相关性排序,第2页:
www。[...]。com / search ?name = john& sort = relevant& p = 2
超过10个可能的参数,所以我不想用所有可选参数定义路线模式。
然后,当我显示搜索结果时,我想链接下一页:
www。[...]。com / search?name = john& sort = relevant & p = 2
www。[...]。com / search?name = john& sort = relevant & p = 3
www。[...]。com / search?name = john& sort = relevant & p = 4
在TWIG模板中,我尝试了这样做:
{% set param = app.request.get('_route_params') %}
{% if param is null %}
{% set param = {'p': page} %}
{% else %}
{% set param = param|merge({'p': page}) %}
{% endif %}
<a href="{{ path(request.get('_route'), param) }}">{{ page }}</a>
但是,由于路线中未定义可选参数,因此它们不在request.get(&#39; _route_params&#39;)中,并且建立的链接仅定义?p = X
有没有其他方法可以获取查询GET参数并编辑它们创建一个带有其他p的新网址?
答案 0 :(得分:2)
在您的树枝模板中,您可以使用:
app.request.query.all
获取所有查询参数