Я работаю с Symfony2 и:
У меня это в routing.yml
_welcome: resource: "@AcmeBundle/Controller/" type: annotation
Я этот метод в контроллере:
/** * @Route("/{page}") */ public function staticAction($page) { return $this->render('AcmeBundle:Static:'.$page.'.html.twig'); }
Чтобы создать общие страницы:
/home /contact /privacy
Но когда я делаю url в меню:
<a href="{{ path('_welcome', {'page': 'home'}) }}">Home</a> <a href="{{ path('_welcome', {'page': 'contact'}) }}">Contact</a> <a href="{{ path('_welcome', {'page': 'privacy'}) }}">Privacy</a>
И я Symfony генерирует эти URL:
…./?page=home …./?page=contact …./?page=privacy
И право будет:
/home /contact /privacy
Что мне делать?
Вы должны добавить название маршрута в аннотации маршрута контроллера, как показано ниже,
/** * @Route("/{page}", name="static") */ public function staticAction($page) { // ... }
Затем вы можете вызвать помощника path
ветки, используя это имя,
<a href="{{ path('static', {'page': 'home'}) }}">Home</a>