2011-12-23 4 views
0

テンプレートを拡張については、私はちょうどので、私は、生成されたこのテンプレート持つAcmeHelloBundleを作成しました:今Symfony2の:

Hello {{ name }}! 

を、私はちょうど含まれているページのタイトル変更したい「こんにちはジョンを!」 。

{% extends '::base.html.twig' %} 

{% block body %} 
    Hello {{ name }}! 
{% endblock %} 
:だから、最初の試みとして、私はこれを行うタイトルを変更するので、最後に...

をbase.twig.htmlを編集し、「foobarに」が、変更されないタイトルの「ようこそ」に変更します

このコードではうまくいきましたが(タイトルの変更は正しく表示されています)、私の最初の試みに関連して、テンプレートがどのようにbase.html.twigを拡張しているのか疑問に思っていますが、それは...

ハビ

+0

あなたが求めていることは完全にはわかりませんが、プロダクションフロントコントローラを使用している場合は、Twigテンプレートを更新してからキャッシュをクリアしてください。 –

+0

私はdev envで作業しています。私はいくつかの質問を変更しました。 – ziiweb

答えて

0

次のテンプレートは、いずれも拡張されません。他のテンプレート:

Hello {{ name }}! 

これは、基本テンプレートの変更があなたには見えない理由です。

テンプレートを明示的に拡張する必要があります(拡張文)。 2番目のコードスニペットと同じように:

{% extends '::base.html.twig' %} 

{% block body %} 
    Hello {{ name }}! 
{% endblock %} 

ここには魔法はありません。あなたがそれをするためにあなたが言っているものはすべてあなたの枝で行います。

あなたは明示的で、何も特別なことはありませんので、あなたは1つの基本テンプレートに限られていません。テンプレートを自由に整理できます。

symfonyドキュメントのTemplatingの章を参照してください。パートthree level inheritanceについては、テンプレートを整理する際の優れた方法を説明しています。

+0

しかし、なぜ私の最初の試みのためのページのタイトルは "ようこそ"ですか?これは、base.html.twigが拡張されていることを意味します。 – ziiweb

+0

テンプレートに "extends"を使用しないと、base.html.twigは拡張されません。与えられたページがそれを設定しなかった場合、クロムは前のタイトルを表示する傾向があることに気付きました。たぶんこれがあなたに起こるのです。 –