Reputation: 6543
I'm working with Symfony2 and:
I have this in the routing.yml
_welcome:
resource: "@AcmeBundle/Controller/"
type: annotation
I this method within a controller:
/**
* @Route("/{page}")
*/
public function staticAction($page)
{
return $this->render('AcmeBundle:Static:'.$page.'.html.twig');
}
To generate common pages:
/home
/contact
/privacy
But when I make the url on the 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>
And I Symfony generates these urls:
…./?page=home
…./?page=contact
…./?page=privacy
And the right would be:
/home
/contact
/privacy
What must I do?
Upvotes: 28
Views: 60357
Reputation: 13891
You've to add a route name in your controller route annotations as follow,
/**
* @Route("/{page}", name="static")
*/
public function staticAction($page)
{
// ...
}
You could then call the twig path
helper using that name,
<a href="{{ path('static', {'page': 'home'}) }}">Home</a>
Upvotes: 55