私は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)
{
// ...
}
次に、その名前を使用してtwig path
ヘルパーを呼び出すことができます。
<a href="{{ path('static', {'page': 'home'}) }}">Home</a>