2009-07-31 5 views
1

je pense que je ne peux pas voir l'arbre dans le bois ..Zend_Layout avec vue partielle - valeur définie par contrôleur Index

Iam utilisant Zend Framework, avec un Wich layout.phtml est rendu et partielle

<?php echo $this->partial('_header.phtml') ?> 

mon but est de rendre une forme de mon IndexController dans le « _header.phtml » avec

<?php echo $this->form; ?> 

Comment puis-je passer la forme à la vue partielle?

Répondre

9

Les partiels d'affichage sont rendus avec une portée variable propre ... Autrement dit, ils n'héritent pas des variables d'affichage de l'instance Zend_View d'appel.

Il y a quelques options à votre disposition ici:

One, appelez simplement:

echo $this->render('_header.phtml'); 

au lieu d'utiliser une partie. Ce fichier aura accès à toutes vos variables d'affichage, de sorte que vous pouvez simplement affecter le formulaire à votre vue dans votre contrôleur, comme toute autre chose.

Une autre façon est de transmettre explicitement votre forme comme une variable à la partie, comme suit:

echo $this->partial('_header.phtml', array('form' => $this->form)); 
// $this->form inside your partial will be your form 

Votre autre option est soit à l'utilisation des espaces réservés, ou des segments de réponse de mise en page. Voici un exemple d'espaces réservés:

Dans votre _header.phtml, ou la mise en page ... où vous voulez la forme de rendre:

<?php echo $this->placeholder('header'); ?> 

Et dans votre contrôleur:

$this->view->placeholder('header')->append($form); 
// I'm not sure, but you _may_ want to pass in $form->render() here. 
// I can't remember if implode() (which is used in placeholders internally) 
// will trigger the __toString() method of an object. 

Cela a le bonus supplémentaire de ne pas polluer votre instance de vue avec des variables uniques, comme le formulaire.

Remarque: Je ferai un lien vers les pages de manuel dès que le site ZF sera de nouveau disponible. 1.9 lancement est aujourd'hui, de sorte que le site est mis à jour actuellement.

Voici quelques pages de manuel pertinentes:

+0

réponse Wonderfull, merci – opHASnoNAME

Questions connexes