Bonjour,
J'ai suivi la formation POO avancée et j'aimerais pouvoir render (ou load) plusieurs vues.
Exemple : j'ai un fichier menu.php que j'aimerais load avant d'afficher mon content mais je suis un peu perdu.
Si je fais
$this->render('menu/index.php');
$this->render('users.login', compact('form', 'errors'));
je me retrouve avec un problème d'affichage.
Merci d'avance pour votre aide.
Bonjour.
Tu ne semble pas avoir compris l'utilité de la méthode render
, elle n'est pas faite pour rentre un bloc de vue, mais pour définir la vue à rendre et la possibilité de lui passer des variables.
Donc si tu veux faire ce que tu demandes, soit tu te crée une méthode fonction qui te permettra d'inclure des pages/blocs de vues, soit tu passes une variable qui contiendrait les pages/blocs de vues à inclure en les passant dans la méthode render
et sur la vue par défaut (un layout), tu met une condition qui permettra que si cette variable est passé, tu fais une inclusion de ces pages.
Par exemple :
...
$elements = ['menus/index'];
$this->render('users.login', compact('form', 'errors', 'elements'));
Puis :
if (isset($elements)) {
foreach ($elements as $element) {
include $element . '.php';
}
}
Mais le mieux c'est quand même de faire une méthode qui te permette d'inclure des blocs de vues supplémentaires via celle-ci.
Le tutoriel est fait pour donner des bases sur le sujet, après il faut utiliser ce que tu y apprends pour améliorer le concept de ton côté.
@dnz
[quote]
$this-render('users.login', compact('form', 'errors'));
[/quote]
Tu as oublié un >
entre -
et render
.