Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Mon site est composé d'une interface pour la page d'accueil, et d'une autre pour les pages annexes.
Elles sont différenciées simplement via une classe CSS.
Ex :
[lang=html]<body class="homepage">...</body> ou <body class="annexe">...</body>
Mon idée est donc d'envoyer une variable au layout.phml si l'on est sur la page d'accueil.
Pour cela, je suis allé sur Application/src/Application/Controller/IndexController.php, j'ai ajouté une valeur au ViewModel comme suit :
[lang=php] namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; class IndexController extends AbstractActionController { public function indexAction() { return new ViewModel(array( 'homepage' => true, )); } }
Seulement, comment je peux récupéré cette valeur dans mon layout.phtml ?
Sur un module, pour récupérer une valeur, je fais juste un <?php echo $variable; ?> et ça fonctionne.
Merci de votre aide,
Florent
PS : Je viens tout juste de débuter sur ZF2, donc merci d'en prendre compte
Dernière modification par celionor (08-03-2013 19:10:42)
Hors ligne
Bonjour,
Le plus simplement du monde...
Dans ton controller:
$this->layout()->setVariable('MaVariable','Valeur');
Dans le layout
<?= $this->MaVariable; ?>
Le layout n'est qu'un cas particulier de ViewModel.
Dernière modification par jfvole (08-03-2013 17:14:06)
Hors ligne
Merci jfvole pour cette réponse rapide, la variable est bien transmise dans mon layout.
Cependant, j'ai une petite question : comment sais-tu qu'il faille mettre $this->layout() ?
Si je souhaite reprendre ton cheminement pour les autres pages, le nom correspond au nom de la page, de la classe, ou autre chose ?
Merci,
Florent
Hors ligne
Je n'ai pas retrouvé ou exactement dans les class zend, mais quelque part Zend fait un lien entre le layout de base et ton controller
Ensuite les ViewModel sont ajouté au layout par le render.
Hors ligne
Il y a effectivement un plugin de contrôleur permettant de récupérer le layout, et qui s'appelle "layout", d'où le $this->layout() ;-).
Hors ligne
Pages: 1