2017-02-19 3 views
2

symfony3でレンダリングされたサブコンポーネント内のルートコントローラ/アクションを取得します:私はコンポーネントのレンダリング私のbase.html.twigで

{% block header %} 
    {{ render(controller("AppBundle:Application\\Header:header")) }} 
{% endblock %} 

現在のルートアクション/コントローラを取得する方法はありますか?ブラウザの現在のURL?

私はvar_dump($ request-> get( '_ route'));を実行します。それはnullになります

+0

が重複する可能性を[twigテンプレートの現在のURLを取得しますか?](http://stackoverflow.com/questions/9378714/get-current-url-in-twig-template) – MedUnes

+0

私はそれを試してみると、私はこれを得るとは思わない: テンプレートのレンダリング中に例外がスローされました(「指定されたルートのURLを生成できません」というルートは存在しないため)。 – user1009698

+0

実際にはこれは$ _ SERVER ["REQUEST_URI"]となります。このデータを取得するためのヘルパーサービスはありますか?ラッパー? – user1009698

答えて

2

あなたは、実際のルートを取得したい場合は、お使いのコントローラでは、このようなマスタ要求を取得することができますの

$this->container->get('request_stack')->getMasterRequest()->get('_route'); 
0

私はコメントで答えることができなかったので、私は答えとしてこれを書く必要があります。

<p><strong>current route name</strong> :{{app.request.attributes.get('_route')}}</p> 
<p><strong>current url: </strong> {{ app.request.schemeAndHttpHost ~ app.request.requestUri }}</p> 
:あなたは、単にによってあなたの小枝テンプレート内でそれらをレンダリングすることができ Get current URL in Twig template

を得るために両方の現在のルートの名前と現在のURL:

上記mentionnedとして、この質問はの重複であるかもしれません

+0

私はそれを試して、これを印刷します:現在のルート名: 現在のURL:http:// localhost:8000/_fragment?_path = _format%3Dhtml%26_controller%3DAppBundle%253AApplication%255CHeader%253Aheader – user1009698

+0

コントローラのコードをコピー/ペーストしますか? – MedUnes

関連する問題