Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour a tous !
Voila, j'ai un petit problème (voir une incompréhension), j'utilise un Layout pour mettre en forme ma page, avec un :
- header,
- sidebar (gauche),
- sidebar (droite),
- contenu,
- footer.
Dans mon contrôleur IndexController et dans l'action Index, j'ai les lignes suivantes :
public function indexAction() { // Action : index $view = new ViewModel(); $headerView = $this->forward()->dispatch('Application\Controller\Index', array('action' => 'header')); $sidebarView = $this->forward()->dispatch('Application\Controller\Index', array('action' => 'sidebar')); $footerView = new ViewModel(); $footerView->setTemplate('application/index/footer'); $viewIdentity = new ViewModel(array( 'firstName' => $this->_identityContainer->firstname, 'lastName' => $this->_identityContainer->lastname )); // $viewIdentity->setCaptureTo('firstName'); $view->addChild($viewIdentity, 'firstName') ->addChild($headerView, 'header') ->addChild($sidebarView, 'sidebar') ->addChild($footerView, 'footer'); return $view; }
J'initialise donc mes différents bloques.
Cependant, j'aimerais passé des variables à ma vue (firstName et lastName).
Le code ci-dessus ne fonctionne pas.
Avez-vous une idée ?
Dans l'attente de votre retour.
Dernière modification par an0nym21 (06-11-2013 12:09:14)
Hors ligne
Bonjour,
Si tu remplaces
$view->addChild($viewIdentity, 'firstName') ->addChild($headerView, 'header') ->addChild($sidebarView, 'sidebar') ->addChild($footerView, 'footer');
Par ça :
$view->setVariables(array( 'firstname' => $viewIdentity, 'header' => $headerView, 'sidebar' => $sidebarView, 'footer' => $footerView, ));
est ce que ça fonctionne ?
Dernière modification par croluc (06-11-2013 17:13:50)
Hors ligne
Bonjour,
Non ça ne marche pas mieux ...
Peut-être que je fais pas les choses comme il faut ?
La structure de la page sera toujours la même (donc je peux tout mettre dans le layout) à l'exception de la sidebar
Celle-ci change en fonction d'où on se trouve...
Une solution ?
Hors ligne