Je travaille avec Symfony2 et:
J'ai ceci dans le routing.yml
_welcome:
resource: "@AcmeBundle/Controller/"
type: annotation
I cette méthode au sein d'un contrôleur:
/**
* @Route("/{page}")
*/
public function staticAction($page)
{
return $this->render('AcmeBundle:Static:'.$page.'.html.twig');
}
Pour générer des pages communes:
/home
/contact
/privacy
Mais quand je fais l'url dans le menu:
<a href="{{ path('_welcome', {'page': 'home'}) }}">Home</a>
<a href="{{ path('_welcome', {'page': 'contact'}) }}">Contact</a>
<a href="{{ path('_welcome', {'page': 'privacy'}) }}">Privacy</a>
Et je Symfony génère ces URL:
…./?page=home
…./?page=contact
…./?page=privacy
Et le droit serait:
/home
/contact
/privacy
Que dois-je faire?
Vous devez ajouter un nom de route dans les annotations de route de votre contrôleur comme suit,
/**
* @Route("/{page}", name="static")
*/
public function staticAction($page)
{
// ...
}
Vous pouvez ensuite appeler l'assistant twig path
en utilisant ce nom,
<a href="{{ path('static', {'page': 'home'}) }}">Home</a>