Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Je souhaite déclarer une variable dans le bloc init() de mon controller pour ne pas avoir à déclarer cette variable partout (utiliser pour le système multi langue de l'application.
Si je fais ceci :
function init() { $translate = Zend_Registry::get('translate'); } function listAction() { $this->view->title_page = ($translate->_("Title_page_news_views_list")); }
Le controller me renvoie l'erreur suivante:
Notice: Undefined variable: translate in /var/www/projet-0rigine/0rigine-xtrem/application/modules/news/controllers/ViewController.php on line 23
Fatal error: Call to a member function _() on a non-object in /var/www/projet-0rigine/0rigine-xtrem/application/modules/news/controllers/ViewController.php on line 23
Si je déclare ma variable $translate de la même façon mais dans la fonction listAction, tout se passe bien.
Comment faire pour déclarer une variable général à mon application?
Merci d'avance.
Hors ligne
Bonjour,
Ta variable $translate est locale à ta fonction. Si tu veux qu'elle soit accessible dans toute ta classe, il faut créer un attribut de classe.
Bref, tu peux utiliser $this->translate à la place de $translate dans ton exemple.
A+, Philippe
Hors ligne
class MonConteroller extends Zend_Controller_Action { public $translate = null; function init() { $this->translate = Zend_Registry::get('translate'); } function listAction() { $this->view->title_page = ($this->translate->_("Title_page_news_views_list")); } }
Hors ligne
Merci, c'était exactement ça que je voulais.
Juste une petite question: l'attribut de classe "view" est utilisé par défaut pour envoyer des informations à la vue.
Comment savoir s'il y a d'autres attributs de ce type? Ceci dans le but de ne pas les utiliser pour faire autre chose.
Hors ligne
print_r($this) ou dump($this)
dans une action affiche tous les membre du contrôleur
Hors ligne
Pages: 1