yml services register name injection dependency container symfony1

symfony1 - services - Cómo configurar un diseño de plantilla diferente para diferentes módulos en Symfony



symfony dependency injection yml (2)

¿Cómo configurar diferentes diseños de plantillas para diferentes módulos en Symfony?

Tengo una aplicación bancaria que consiste en una pantalla de inicio de sesión y una sección para miembros. Entonces, cuando un usuario vaya a mi sitio, se le presentará una pantalla de inicio de sesión. Después de iniciar sesión, será redirigido a la sección de miembros para que pueda hacer lo que sea que necesite.

Entonces, ¿cómo configurar diferentes diseños para la pantalla de inicio de sesión y las páginas dentro de la sección de miembros? Symfony parece usar frontend/templates/layout.php como plantilla para TODAS las páginas. ¿Es posible definir diferentes diseños?


O si estás dentro de acciones, puedes usar simplemente:

$this->setLayout(''name_file_layout_without_extension'');

Y después puede trabajar en la plantilla que está utilizando dentro del módulo.


Sí, puede definir diseños separados por vista (o deshabilitar el diseño por completo). Para hacer esto, debe crear (o editar, si ya lo tiene) el archivo view.yml en el directorio / config de su módulo. Puede definir el diseño que se utilizará para todas las vistas del módulo o para cada vista por separado. Por ejemplo:

#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

En todos los casos, el diseño es el archivo en el directorio / templates de su aplicación (con .php anexado). Si no define ninguna directiva de diseño en el archivo de configuración de vista del módulo, se utilizará el diseño predeterminado.