2010-11-19 5 views
6

Pour une raison quelconque, je ne peux pas utiliser la bonne syntaxe pour passer une variable de mon contrôleur (profileController) à une partie (video.phtml).Passer une variable du contrôleur à un partiel dans Zend

Je sais que vous passer des variables à des vues comme celui-ci

$this->view->somedata = "somedata"; 

et vous tirez dans la vue avec

< ?= $this->somedata ?> 

comment feriez-vous pour une partie?

Répondre

14

Lorsque vous restituez le partiel (probablement à partir de la vue, à droite) <?php echo $this->partial(scriptpath, [module], [data])?>, vous pouvez également passer un module où se trouve le script et les données auxquelles le partiel doit avoir accès. C'est la raison des partiels, pour ne permettre que de voir certaines données. Donc, disons que vous avez le scénario suivant: Vous poussez beaucoup de données du contrôleur dans la vue. Dans une certaine partie, qui sera réutilisé à plusieurs endroits dans votre application, vous voulez vous assurer qu'il n'a accès qu'à un certain type de données, et que vous voulez que les données soient nommées de manière cohérente à chaque fois qu'elles sont rendues. Vous pouvez ensuite faire quelque chose comme:

Dans le contrôleur:

$this->view->namedVariableThatCouldBeWhatever = $data; 

De l'avis:

echo $this->partial(
    $partialName, 
    array (
    'standardName' => $this->namedVariableThatCouldBeWhatever 
) 
); 

Dans la partie:

<?php foreach($this->standardName as $item) : ?> 
    //render partial 
<?php endforeach; ?> 
+0

Merci Patrik! Tu es le meilleur ! – TuK

+0

Le meilleur? D'accord. – PurplePilot

+0

Génial! Patrik votre rocher. –

Questions connexes