Comment définir une disposition de modèle différente pour différents modules dans Symfony

StackOverflow https://stackoverflow.com/questions/610133

  •  03-07-2019
  •  | 
  •  

Question

Comment définir différentes dispositions de modèles pour différents modules dans Symfony?

J'ai une application bancaire composée d'un écran de connexion et d'une section membre. Ainsi, lorsqu'un utilisateur accédera à mon site, un écran de connexion lui sera présenté. Une fois connecté, il sera redirigé vers la section membre où il pourra faire ses besoins bancaires.

Alors, comment définir différentes dispositions pour l'écran de connexion et les pages à l'intérieur de la section membre? Symfony semble utiliser frontend / templates / layout.php comme modèle pour TOUTES les pages. Est-il possible de définir différentes mises en page?

Était-ce utile?

La solution

Oui, vous pouvez définir des mises en page distinctes par vue (ou bien désactiver la mise en page). Pour ce faire, vous devez créer (ou éditer, si vous le possédez déjà) le fichier view.yml dans le répertoire / config de votre module. Vous pouvez définir la disposition à utiliser pour toutes les vues du module ou pour chaque vue séparément. Par exemple:

#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

Dans tous les cas, la présentation est le fichier situé dans le répertoire / templates de votre application (avec .php ajouté). Si vous ne définissez aucune directive de présentation dans le fichier de configuration de la vue du module, la présentation par défaut sera utilisée.

Autres conseils

Ou si vous êtes dans des actions, vous pouvez utiliser simplement:

$this->setLayout('name_file_layout_without_extension');

Et après que vous puissiez travailler sur le modèle que vous utilisez dans le module.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top