2010-11-19 19 views
6

Per qualche motivo non riesco a correggere la sintassi corretta per passare una variabile dal mio controller (profileController) a una parte (video.phtml).Passaggio di una variabile da Controller a Parziale in Zend

so che si passa le variabili a vista in questo modo

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

e si tira nella vista con

< ?= $this->somedata ?> 

come si dovrebbe farlo per un parziale?

risposta

14

Quando si esegue il rendering del parziale (probabilmente dalla vista, a destra) <?php echo $this->partial(scriptpath, [module], [data])?>, è anche possibile passare un modulo in cui si trova lo script e i dati a cui il parziale deve avere accesso. Questo è il motivo per i partial, per consentire solo di vedere determinati dati.

Quindi, supponiamo di avere il seguente scenario: si spinge un sacco di dati dal controller nella vista. In un certo parziale, che verrà riutilizzato in più punti della tua app, dovrai assicurarti che abbia solo accesso a un determinato tipo di dati e che i dati vengano nominati in modo coerente ogni volta che viene eseguito il rendering. Si potrebbe quindi fare qualcosa di simile:

Nel controllore:

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

Nella vista:

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

Nel partial:

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

Grazie Patrik! Sei il migliore ! – TuK

+0

Il migliore? Concordato. – PurplePilot

+0

Fantastico! Patrik Your Rock. –

Problemi correlati