2009-03-04 11 views
16

Come impostare layout di modelli diversi per diversi moduli in Symfony?Come impostare layout di modelli diversi per diversi moduli in Symfony

Ho un'applicazione bancaria che consiste in una schermata di accesso e una sezione membro. Quindi, quando un utente visita il mio sito, verrà presentato con una schermata di accesso. Dopo aver effettuato il login, verrà reindirizzato alla sezione membri che potrà fare le sue esigenze bancarie.

Quindi, come impostare layout diversi per la schermata di accesso e le pagine all'interno della sezione membri? Symfony sembra utilizzare frontend/templates/layout.php come modello per TUTTE le pagine. È possibile definire diversi layout?

risposta

42

Sì, è possibile definire layout separati per visualizzazione (o disabilitare del tutto il layout). Per fare ciò, devi creare (o modificare, se già lo hai) il file view.yml nella directory/config del tuo modulo. È possibile definire il layout da utilizzare per tutte le viste del modulo o per ciascuna vista separatamente. Per esempio:

#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 tutti i casi, il layout è il file nella directory/templates della tua app (con .php allegate). Se non si definiscono direttive di layout nel file di configurazione della vista del modulo, verrà utilizzato il layout predefinito.

-1

Oppure, se siete azioni all'interno, è possibile utilizzare semplicemente:

$this->setLayout('name_file_layout_without_extension'); 

E dopo si può lavorare su modello che si sta utilizzando all'interno del modulo.

Problemi correlati