モノノフ日記

普通の日記です

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') }}