Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
j'ai suivi ce tutorial pour faire un site multi langue : http://www.joecarbure.com/dw2/doku.php? … _framework
Mon problème est : je n'arrive pas à récupérer la langue pour la traduction, le message d'erreur suivant apprait :
Notice: Undefined property: Zend_Controller_Front::$getRequest in E:\betool\index.php on line 61 Fatal error: Call to a member function getParam() on a non-object in E:\betool\index.php on line 61
Voici mon code :
$controller = Zend_Controller_Front::getInstance(); $router = new Zend_Controller_Router_Rewrite(); $router->addRoute( "default", new Zend_Controller_Router_Route( "/:language/:controller/:action/*", array( "language" => "fr", "controller" => "Joueur", "action" => "new" ) ) ); $controller->setRouter($router); // Définition des langues $language = $controller->getRequest->getParam("language", "fr"); switch ( $language ) { case "en": $locale = new Zend_Locale("en"); break; default: $locale = new Zend_Locale("fr"); break; } // Chargement du fichier de traduction $translator = new Zend_Translate('tmx', TRADUCTION_DIR.'/translations.tmx', $locale); Zend_Registry::set('translator', $translator);
Merci pour votre aide
Hors ligne
Hello
getRequest() avec les parenthèses.
A+
Hors ligne
mikaelkael a écrit:
Hello
getRequest() avec les parenthèses.
A+
Merci mais ça ne marche pas non plus, j'ai tjs la même erreur. Merci pour votre aide
LE message :
Fatal error: Call to a member function getParam() on a non-object in /Applications/MAMP/htdocs/betool/index.php on line 61
Dernière modification par yegortitov (26-11-2008 19:50:13)
Hors ligne
Hello,
Non ce n'est plus la même erreur, ce n'est pas possible .
A+
Hors ligne
mikaelkael a écrit:
Hello,
Non ce n'est plus la même erreur, ce n'est pas possible.
A+
oui c'est exact mais une erreur persiste, je ne comprends pas. je continue à chercher
Fatal error: Call to a member function getParam() on a non-object in /Applications/MAMP/htdocs/betool/index.php on line 61
pour :
$language = $controller->getRequest()->getParam("language", "fr");
Dernière modification par yegortitov (26-11-2008 19:59:32)
Hors ligne
Hello,
Il manque sans doute qqch dans le code du tuto car effectivement la requête (Zend_Controller_Request) n'est pas encore initialisée donc getParam() n'est pas accessible.
A+
Dernière modification par mikaelkael (26-11-2008 21:40:49)
Hors ligne
C'est clair qu'il doit manquer des choses dans le tuto !
Soit, tu crées ton 'request' et tu la passes au front (via setRequest) soit tu rentres dans ta boucle de dispatching (et il va créé lui même un objet request)
Hors ligne
Hello,
Effectivement nORKy, hier soir, j'avais un peu la tête dans le pâté mais pour moi on ne fait pas :
$language = $controller->getRequest()->getParam("language", "fr");
tant que le routage n'a pas été effectué.
Ceci dit, je n'ai peut-être pas encore ressorti la tête (... du pâté).
A+
Dernière modification par mikaelkael (27-11-2008 09:40:19)
Hors ligne
Sinon pour savoir de quel objet ca vient, details ta ligne :
$language = $controller->getRequest()->getParam("language", "fr");
va devenir :
$request =controller->getRequest(); $language = $request->getParam("language", "fr");
Ainsi, avec la ligne de l'erreur, tu sauras si l'erreur vient de l'object request ou le param, plus facile pour cerner la cause du bug
Hors ligne
Guillhomme a écrit:
Sinon pour savoir de quel objet ca vient, details ta ligne :
Code:
$language = $controller->getRequest()->getParam("language", "fr");va devenir :
Code:
$request =controller->getRequest(); $language = $request->getParam("language", "fr");Ainsi, avec la ligne de l'erreur, tu sauras si l'erreur vient de l'object request ou le param, plus facile pour cerner la cause du bug
l'erreur est la suivante :
Fatal error: Call to a member function getParam() on a non-object in
Hors ligne
Si tu veux que le code haut plus marche, essai de rajouter ca :
$request = new Zend_Controller_Request_Http(); front->setRequest($request);
la, request sera initialiser..
Mais, je ne pense pas que ca va t'aider par la suite...
mikaelkael a écrit:
Hello,
Effectivement nORKy, hier soir, j'avais un peu la tête dans le pâté mais pour moi on ne fait pas :
Ceci dit, je n'ai peut-être pas encore ressorti la tête(... du pâté).
A+
Et il est bon le pâté ?! :p
Surement meilleurs que d'avoir la tête dans le *BIP*
Dernière modification par nORKy (27-11-2008 10:46:59)
Hors ligne
Bonjour,
perso j'utilise ça pour récupérer la langue dans l'URL :
$request = new Zend_Controller_Request_Http(); $router->route($request); $request->getParam("language")
Edit: ou là ils conseillent l'utilisation d'un plugin : http://www.z-f.fr/forum/viewtopic.php?id=1432
Dernière modification par wawash (05-12-2008 22:15:02)
Hors ligne