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