使用Symfony2中的细枝删除URL参数

使用Symfony2中的细枝删除URL参数,symfony,twig,Symfony,Twig,我有一个带有搜索结果的视图和一些添加过滤器的按钮。操作非常简单,通过单击按钮再次调用当前页面,通过URL传递参数?foo=foo 系统运行良好,但我想再次单击过滤器按钮,以确定是否删除了活动参数 这可能吗 细枝代码: <div class="col-lg-12 unfilled" style="float:none; margin-bottom:1.3em"> <a href="{{ path(app.request.attributes.get('_route

我有一个带有搜索结果的视图和一些添加过滤器的按钮。操作非常简单,通过单击按钮再次调用当前页面,通过URL传递参数
?foo=foo

系统运行良好,但我想再次单击过滤器按钮,以确定是否删除了活动参数

这可能吗

细枝代码:

<div class="col-lg-12 unfilled" style="float:none; margin-bottom:1.3em">
        <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'filter': 'pa'})) }}" class="btn btn-default btn-sm {{ app.request.get('filter') == 'pa' ? 'active' : '' }}">Menor precio</a>
        <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'filter': 'pd'})) }}" class="btn btn-default btn-sm {{ app.request.get('filter') == 'pd' ? 'active' : '' }}">Mayor precio</a>
        <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'stars1': '1'})) }}" class="btn btn-default btn-sm {{ app.request.get('stars1') > 0 ? 'active' : '' }}">1 <i class="glyphicon glyphicon-star"></i></a>
        <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'stars2': '3'})) }}" class="btn btn-default btn-sm {{ app.request.get('stars2') > 0 ? 'active' : '' }}">2 <i class="glyphicon glyphicon-star"></i></a>
        <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'stars3': '5'})) }}" class="btn btn-default btn-sm {{ app.request.get('stars3') > 0 ? 'active' : '' }}">3 <i class="glyphicon glyphicon-star"></i></a>
        <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'stars4': '7'})) }}" class="btn btn-default btn-sm {{ app.request.get('stars4') > 0 ? 'active' : '' }}">4 <i class="glyphicon glyphicon-star"></i></a>
        <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'stars5': '9'})) }}" class="btn btn-default btn-sm {{ app.request.get('stars5') > 0 ? 'active' : '' }}">5 <i class="glyphicon glyphicon-star"></i></a>
    </div>


非常感谢。

使用参数设置为null以避免参数:

    {{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'filter': 'pd', 'star1': null, [...]} }}"

对所有要禁用的参数执行此操作([…])。

我不完全同意,您希望从链接中删除
?foo=foo
,如果该链接已存在于当前URL中?我想要的是从过滤所显示数据的同一按钮中,通过GET传递的变量进行区分,参数设置并被删除,因为默认情况下会显示一个未过滤的列表。通过单击相同的按钮来放置和删除过滤器。