Symfony2でControllerやTemplateから現在のルーティング名を取得するやり方
最近Symfony2でガリガリコード書いてるので備忘録がてらブログをひさびさに更新していこうと思います。
テンプレートで自分のルーティング名で分岐したい(ex. class="current"つけたい)、ということがよくありそうなので調べてみました。
結論から言うと、Symfony2がrequestとして処理して渡してくれてるので簡単にできます。
あと、タイトルで言ってるルーティング名とはrouting.ymlで定義する名前のことです。
blog: ←これ pattern: /blog/ defaults: { _controller: BlogBundle:Default:index }
Controllerでのやり方
引数に $_route 渡すだけです。
<?php namespace Blog\Bundle\BlogBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; public function indexAction($_route) { // code... }
Template(twig)でのやり方
app.requestの中に入ってます。
{{ app.request.attributes.get('_route') }}