2012-03-20 3 views
21

Есть ли способ создать путь для данного маршрута и аргументов, автоматически добавить строку запроса? В качестве временного решения проблемы я использую Самодельный макрос:Создать строку запроса добавления пути в Symfony2

{% macro path(route, args, with_query) %} 
{% spaceless %} 
    {% set with_query = with_query|default(false) and app.request.queryString %} 
    {{ path(route, args) ~ (with_query ? '?' ~ app.request.queryString : '') }} 
{% endspaceless %} 
{% endmacro %} 

есть какая-то родная функция в Symfony2/Twig для этого?

ответ

66

Хорошая вещь с пути расширения Twig что Unknow параметры, передаваемые через массив ARGS автоматически добавляются в конец URL, как GET PARAMATERS:

{{ path('route_id', {'routeParam':'foo', 'unknownParam':'bar'}) }} 

будет производить

/path/to/route/foo? unknownParam = бар

+0

Ну, ответ принят, даже если мне это нужно более динамично (т. unknownParam больше и не исправлено). – gremo

+1

Это всего лишь образец, вы можете поместить переменную для '' unknownParam '' и '' bar ''! – AlterPHP

+2

Эта функциональность «неизвестных параметров» является частью основного маршрутизатора Symfony2, поэтому вы можете использовать тот же подход в своих контроллерах. Из [официальной документации] (http://symfony.com/doc/current/book/routing.html#generating-urls-with-query-strings): $ router-> generate ('blog', array ('page '=> 2,' category '=>' Symfony ')); ///blog/2? category = Symfony – Barry

-4
{{ path('name_of the_page', {'id': asdfasd.pk_id}) }} 

 Смежные вопросы

  • Нет связанных вопросов^_^