Подтвердить что ты не робот

Как правильно создавать URL-адреса из шаблона в Symfony2/Twig

Я работаю с 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

Что мне делать?

4b9b3361

Ответ 1

Вы должны добавить имя маршрута в аннотации маршрута контроллера, как показано ниже,

/**
 * @Route("/{page}", name="static")
 */
public function staticAction($page)
{
    // ... 
}

Затем вы можете вызвать вспомогательный помощник path, используя это имя,

<a href="{{ path('static', {'page': 'home'}) }}">Home</a>