2012-05-02 3 views
1

Когда я пытаюсь использовать 2 дополнительные переменные маршрутизации Symfony2 У меня есть й ошибка: нет маршрута не найдено для «GET /» В routing.yml у меня есть:Две дополнительные переменные в Symfony2 маршрутизации

AcmeAshavatBundle_homepage: 
pattern: /{page}/{ads_on_page}/ 
defaults: { _controller: AcmeAshavatBundle:Page:index, page:1, ads_on_page:2 } 
requirements: 
    _method: GET|POST 

И когда i go to http://localhost:8080/AshavatSy/web/app_dev.php/ У меня есть ошибка. Интересно, что если я запустил http://localhost:8080/AshavatSy/web/app_dev.php/1, он работает хорошо. Также, если я изменю путь к шаблону:/main/{page}/{ads_on_page}/он работает хорошо.
В чем проблема?
Я хотел бы спросить, что кто-то попытается сделать это (см. pattern:/a/b/defaults: {... a: 1, b: 2}, или, как он думает, вы должны это сделать] в своем проекте, и это общая проблема ...

ответ

1

I подумайте, что вы забыли передать эти два аргумента в свой IndexAction() в контроллере.

Попробуйте этот код

Public function indexAction($page,$ads_on_page) 
{} 

Надеется, что это помогает вам.

+0

Нет, я не забыл об этом. – s976

+0

инициализируйте переменные со значениями по умолчанию в аргументах действия, затем попробуйте it.indexAction ($ page = 1, $ ads_on_page = 2) –

+0

Спасибо, я попробовал, но это не помогает. Ошибка находится на шаге маршрутизации. Таким образом, система не достигает контроллера. – s976

1

Мне удалось что-то подобное работать, указав два маршрута, указав на один и тот же контроллер, используя параметры по умолчанию. В моем случае, с помощью аннотаций:

/** 
* @Route("/products/{catId}/{prodId}", defaults={"catId"="", "prodId"=""}) 
* @Route("/products/") 
* @Template() 
*/ 
public function indexAction($catId = null, $prodId = null) { 
    ... 

Я думаю, что с использованием параметров по умолчанию только Symfony будет ожидать два /.

HTH

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