Symfony2 - Маршрутизация с запросом в routing.yml - PullRequest
1 голос
/ 16 августа 2011

Я хочу разрешить добавление переменных в URL для маршрута в Symfony2, т. Е.

www.mysymfonyproject.com/blog/1?style=fresh&rpp=5 

В документации говорится о создании URL-адресов с помощью запроса, но насколько я понимаю, это относится к динамическому контенту вприложение ?:

$router->generate('blog', array('page' => 2, 'category' => 'Symfony'));
// /blog/2?category=Symfony

Я хотел бы, чтобы это было:

_blogList:
pattern: /blog/{page}?{query}
defaults: { _controller: TestBundle:Blog:view ,page:1, query: NULL } 

Но, очевидно, это не работает.

Можно ли это сделать с помощью YAML??Или мне нужно переключить мой config.yml на PHP?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Вы можете получить доступ ко всем параметрам запроса (параметры, которые не являются частью фактического шаблона маршрута), выполнив:

$this->getRequest()->query->get('parameter_name')

внутри действия вашего контроллера, соответствующего маршруту.

У меня есть смутное воспоминание о наличии ярлыка для этого (например, $ this-> getParameter () или $ this-> getQuery ()), но я не уверен, поскольку нигде не смог найти его документированным.

1 голос
/ 16 августа 2011

Можете ли вы попробовать этот маршрут (он должен работать):

blog:
    pattern: /blog/{page}
    defaults: { _controller: TestBundle:Blog:view ,page:1, style:fresh, rpp:5 } 

<ч /> Затем, чтобы сгенерировать URL-адрес типа /blog/1?style=fresh&rpp=5, используйте:

$router->generate('blog', array('page' => 1, 'style' => 'fresh', 'rpp' => 5));

или

$router->generate('blog', array('page' => 1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...