2009-03-04 2 views
16

Wie legt man unterschiedliche Vorlagenlayouts für verschiedene Module in Symfony fest?So legen Sie ein anderes Vorlagenlayout für verschiedene Module in Symfony fest

Ich habe eine Banking-Anwendung, die aus einem Login-Bildschirm und einem Mitglied Abschnitt besteht. Wenn ein Benutzer auf meine Website geht, wird ihm ein Anmeldebildschirm angezeigt. Nach dem Login wird er zum Mitgliedsbereich weitergeleitet, wo er seine Bankgeschäfte erledigen kann.

Also, wie Sie verschiedene Layouts für den Login-Bildschirm und die Seiten innerhalb des Mitgliederbereichs festlegen? Symfony scheint frontend/templates/layout.php als Vorlage für ALLE Seiten zu verwenden. Ist es möglich, verschiedene Layouts zu definieren?

Antwort

42

Ja, Sie können separate Layouts pro Ansicht definieren (oder das Layout insgesamt deaktivieren). Dazu müssen Sie die Datei view.yml im Verzeichnis/config Ihres Moduls erstellen (oder bearbeiten, wenn Sie sie bereits haben). Sie können das Layout definieren, das für alle Ansichten des Moduls oder für jede Ansicht separat verwendet werden soll. Zum Beispiel:

#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 

In allen Fällen ist das Layout der Datei in Ihrer App/templates Verzeichnis (mit .php angehängt). Wenn Sie in der Ansichtskonfigurationsdatei des Moduls keine Layout-Anweisungen definieren, wird das Standardlayout verwendet.

-1

Oder wenn Sie in Aktionen sind, können Sie einfach:

$this->setLayout('name_file_layout_without_extension'); 

Und nach können Sie auf Vorlage arbeiten, die Sie innerhalb des Moduls verwenden.

Verwandte Themen