使用其他GET参数

时间:2015-10-19 08:07:05

标签: symfony twig

在使用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的新网址?

1 个答案:

答案 0 :(得分:2)

在您的树枝模板中,您可以使用:

app.request.query.all

获取所有查询参数