2012-03-20 9 views
21

Czy istnieje możliwość wygenerowania ścieżki dla danej trasy i argumentów, automatyczne dołączanie ciągu zapytania do zapytania? Jako tymczasowe rozwiązanie Używam self made makro:Wygeneruj ścieżkę dołączającą ciąg zapytania do 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 %} 

jest jakiś rodzimy funkcja w Symfony2/Gałązka dla tej operacji?

Odpowiedz

66

Miła rzecz z ścieżki Twig rozszerzenia jest to, że Unknow parametry przekazywane za pośrednictwem tablicy args są automatycznie dołączane na końcu adresu URL jako GET PARAMATERS:

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

będzie produkować

/ścieżka/do/route/foo? unknownParam = pasek

+0

Cóż, odpowiedź została zaakceptowana, nawet jeśli potrzebuję jej bardziej dynamicznego (tj. unknownParam są bardziej i nie ustalone). – gremo

+1

to tylko przykład, możesz umieścić zmienną dla '' unknownParam '' i '' bar ''! – AlterPHP

+2

Ta funkcja "nieznanych parametrów" jest częścią rdzenia routera Symfony2 - dzięki czemu możesz używać tego samego podejścia w swoich kontrolerach. Z [oficjalnej dokumentacji] (http://symfony.com/doc/current/book/routing.html#generating-urls-with-query-strings): $ router-> generate ('blog', array ('strona '=> 2,' category '=>' Symfony ')); ///blog/2? category = Symfony – Barry

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