2010-10-06 4 views
0

J'ai récemment découvert que view helpers semble être indisponible lors de l'appel manuel $view->render().

Dans ce cas particulier, j'ai une aide de vue config que je peux appeler facilement à partir de mes scripts de vue comme ceci:

$this->config()->some->param 

J'essaie maintenant d'envoyer un courrier et découvrir que ce qui précède ne semble pas fonctionner lorsque vous appelez manuellement la méthode render:

/** 
* Within these view scripts, $this->config() is called, 
* which results in an empty object 
*/ 
$mail->setBodyText($this->view->render('partials/invite/email/text.phtml')); 
$mail->setBodyHtml($this->view->render('partials/invite/email/html.phtml')); 

Suis-je sur quelque chose? Est-ce un bug ou un comportement prévu? Dois-je adopter une autre approche pour le rendu manuel des scripts de vue?

Merci d'avance. On peut voir un peu plus de code?

Répondre

0

Jusqu'à présent, j'ai travaillé avec des vues rendues manuellement.

$view->setHelperPath('/path/to/helper/class'); 
print $view->render('view.phtml'); 

Ce ici est la classe nommée FooBar.php dans les/chemin/vers/aide/classe

<?php 
class Zend_View_Helper_FooBar extends Zend_View_Helper_Abstract { 
    public function fooBar() 
    { 
     return 'random string this will be the output'; 
    } 
} 

Dans view.pthml

print $this->fooBar(); 

Sorties

chaîne aléatoire ce sera la sortie

+0

Fournir manuellement le chemin d'assistance le fait aussi pour moi. Cela me semble tout de même assez bogué. Le chemin d'assistance est enregistré via mon fichier de configuration d'application et devrait déjà être défini. –

+0

S'il existe déjà un chemin d'assistance, votre classe d'assistance doit être placée dans ce chemin. Est-ce là et ne fonctionne pas? –

+0

Merci pour votre réponse, mais le chemin d'assistance est enregistré correctement. Lors du rendu des vues sans réellement appeler $ this-> view-> render(), elles sont exécutées correctement, ce qui est une confusion. Il semble qu'un appel manuel à $ this-> view-> render() à partir du contrôleur casse les helpers de vue. –

Questions connexes