2009-03-04 42 views
16

如何爲Symfony中的不同模塊設置不同的模板佈局?如何爲Symfony中的不同模塊設置不同的模板佈局

我有一個銀行應用程序,它由一個登錄屏幕和一個成員部分組成。所以當用戶去我的網站時,他會看到一個登錄屏幕。登錄後,他將被重定向到會員部分,他可以完成他的任何銀行業務需求。

那麼,如何爲登錄界面和頁面內的頁面設置不同的佈局呢? Symfony似乎使用frontend/templates/layout.php作爲所有頁面的模板。是否可以定義不同的佈局?

回答

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)中的文件。如果您未在模塊的視圖配置文件中定義任何佈局指令,則將使用默認佈局。

-1

或者如果你是裏面的動作,你可以簡單地使用:

$this->setLayout('name_file_layout_without_extension'); 

而且之後你可以在你使用模塊內部模板工作。

相關問題