17

Symfony のさまざまなモジュールにさまざまなテンプレート レイアウトを設定するには?

ログイン画面とメンバー セクションで構成されるバンキング アプリケーションがあります。そのため、ユーザーが私のサイトにアクセスすると、ログイン画面が表示されます。ログイン後、彼はメンバー セクションにリダイレクトされ、そこで必要な銀行業務を行うことができます。

では、ログイン画面とメンバーセクション内のページに異なるレイアウトを設定するにはどうすればよいでしょうか? symfony はfrontend/templates/layout.phpすべてのページのテンプレートとして使用しているようです。異なるレイアウトを定義することは可能ですか?

4

2 に答える 2

42

はい、ビューごとに個別のレイアウトを定義できます (またはレイアウトを完全に無効にできます)。これを行うには、モジュールの /config ディレクトリに view.yml ファイルを作成 (既にある場合は編集) する必要があります。モジュールのすべてのビューまたは各ビューに個別に使用するレイアウトを定義できます。例えば:

#in /apps/my_app/modules/my_module/config/view.yml

#this will apply custom_layout to all views of the module
all:
  layout: custom_layout

#this will apply login_layout to the loginSuccess view
loginSuccess:
  layout: login_layout

#disable layout for this view
homeSuccess:
  has_layout: false

いずれの場合も、レイアウトはアプリの /templates ディレクトリ内のファイルです (.php が追加されます)。モジュールのビュー構成ファイルでレイアウト ディレクティブを定義しない場合、既定のレイアウトが使用されます。

于 2009-03-05T10:25:27.607 に答える
1

または、アクション内にいる場合は、次のように簡単に使用できます。

$this->setLayout('name_file_layout_without_extension');

そして、モジュール内で使用しているテンプレートで作業できるようになった後。

于 2016-03-24T11:47:58.123 に答える