Si l’on souhaite passer la page courante dans une route sf2, en utilisant les annotations, pour obtenir à une structure comme ceci :
/news/ (page = 1)
/news/2 (page = 2)
On peut utiliser l’option defaults de @Route en affectant 2 routes à son contrôleur :
/** * * @Route("/news", name="news_list", defaults={"page" = 1}) * @Route("/news/{page}", name="news_list_page", requirements={"page" = "\d+"}) * @Template() */ public function indexAction($page) { return array() }
On peut raccourcir le tout en mettant:
/**
*
* @Route(« /news/{page} », name= »news_list », defaults={« page » = 1}, , requirements={« page » = « \d+ »})
* @Template()
*/
public function indexAction($page)
{
return array()
}
Du coup ça évite de définir deux routes différentes, et on garde le même comportement.
+1 @Maxime
Sauf que dans ce cas là, on ne pourrait pas avoir /news/ avec le slash à la fin. Cela sera forcément /news pour la page par défaut.