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