3

Web アプリケーションに symfony を使用しています。

フォルダに拡張タグのない多数のテンプレートがあります。

現在、それらは独自のコンテンツで開くだけですが、それらはすべてマザー テンプレートから拡張する必要があります。

私はこれを使用することを知っています:

{% extends 'AnmeBundle::layout.html.twig' %}
{% block body %}

すべてのテンプレートファイルにそれを書かずにそれを行う方法はありますか?

4

1 に答える 1

0

Symfony 2.0 の場合

コピーすることで回避策を実行できると思います

TwigBundle/Resources/views/layout.html.twig

app/Resources/TwigBundle/views/layout.html.twig

そこで、Twig ベース ファイルをオーバーライドできます。これは、すべてのテンプレートに影響するはずです。

将来、プロジェクトを開始するときに、base.html.twig テンプレートを作成し、twig ベースをオーバーロードするのではなく、作成時に他のすべてのテンプレートに含めます。

RTM を強くお勧めします: http://symfony.com/doc/current/book/templating.html

Symfony 1.4 の場合

layout.php (apps//templates/layout.php 内) はデフォルトのグローバル テンプレートです。グローバル テンプレートは、共通コード (ヘッダー、フッター、ボット コード、Google アナリティクス) に使用されます。

layout.php と同じフォルダーに独自のグローバル テンプレートを作成し、そのモジュールの view.yml を使用して、さまざまなアクションにさまざまなグローバル テンプレートを使用させることができます。

そのようです:

indexSuccess:
  layout: my_layout

または、アクションでプログラムで実行できます。

$this->setLayout('my_layout');

またはテンプレートで

<?php decorate_with('my_layout') ?>

RTM を強くお勧めします: http://www.symfony-project.org/gentle-introduction/1_4/en/07-Inside-the-View-Layer

于 2012-07-30T20:55:19.933 に答える