生成URL并保留GET参数Symfony2


Generate URL and keep GET parameters Symfony2

I正在搜索Symfony处理保持当前GET参数的方法。

假设当前url为:http://example.com/cars/?q=Volvo%p=1

现在我必须在当前的基础上生成一个url,但修改一个参数:http://example.com/cars/?q=Volvo%p=2

对于这种情况,我正在寻找symfony最佳实践解决方案,简单地通过手动附加所有已知的get参数来生成url不可能是正确的方法。

做一些类似的事情:

$this->generateUrl( 'some_route', array( 'q' => $request->get('q'), 'p' => $request->get('p') ) );

$this->generateUrl( 'some_route', array_merge( $request->query->all(), array( 'p' => $request->get('p') + 1  ) ) );

只是感觉不对。

必须有一个好的,干净的解决方案。我想到这样的东西:

<!-- path( <route>, <params>, <persist current> ) -->
{{ path( 'some_route', { p: 2 }, true ) }}

例如,fuelPHP框架具有用于此的update_query_string方法。

以下是我所做的:

{{ url('my_route', {myparam:'value'}|merge(app.request.query.all)) }}

你可以这样做:

$this->generateUrl('some_route', $request->query->all())