Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'essaie de mettre en place un mini projet avec zend, et j'arrive pas à gérer le passage de paramètre au sein de mon appli.
J'ai donc un lien crée comme ça :
<a href="<?php echo $this->url(array('controller'=>'index', 'action'=>'choixLangue', 'id'=>'fr'));?>" class="langue"><?php echo $translate->_('choixFrancais');?></a>
J'ai paramétré mon Apache pour que le AllowUrl soit à All
Mon htaccess est le suivant :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
Mon controller IndexController fait pas grand chose pour le moment :
public function choixLangueAction() { $this->view->title = "Changement de langue"; }
Et ce qui est bizzare c'est que la page se charge avec mon layout, mais qu'a la place qu content j'ai une erreur page not found
Pour tester j'ai crée une page choixLangue.phtml dans mes views :
<p>TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT</p>
ça marche pas mieux, et si je regarde mes logs ils me disent :
127.0.0.1 - - [11/Oct/2011:17:25:35 +0200] "GET /truc/public/index/choixLangue/id/en HTTP/1.1" 404 1888
Je suppose que j'ai mal fait mon paramétrage mais je vois vraiment ce qui plante si quelqu'un à des conseils avisés je suis preneur
Dernière modification par LeNoyauDur (12-10-2011 11:08:39)
Hors ligne
Je ne m'y connais pas trop en Apache... Mais est-ce que ça marche si tu créés ton URL "à la main" ?
<a href="/index/choixLangue/id/en" class="langue"><?php echo 'Salut';?></a>
Tu peux recopier l'erreur exacte que te donnes Zend ? (n'oublie pas d'activer l'affichage des exceptions si ce n'est pas déjà fait).
Hors ligne
Hum,
Les exceptions sont bien affichées, l'erreur exacte c'est "Page Not found 404"
J'ai pas essayé de créer mon URL de façon brute puisque le index/choixLangue/id/en ne pointe pas vers une arborescence précise, si j'ai bien compris le principe du framework, le index correspond à mon controller, le choix langue à la fonction de mon controller et le id/en correnspond respectivement à mon paramètre et à sa valeur.
En fait vu que mon layout et que quoi je mette dans ma fonction choixLangue j'ai l'impression de pas repasser par mon controlleur et je comprend vraiment pas pourquoi.
Hors ligne
<a href="<?php echo $this->url(array('controller'=>'index', 'action'=>'choix-langue', 'id'=>'fr'));?>" class="langue"><?php echo $translate->_('choixFrancais');?></a>
Ton choixLangue dans l'helper url doit être écrit en minuscule avec un tiret il me semble.
Hors ligne
Ouais c'était ça enfin presque, Zned accepte pas les majuscules dans les actions ^^
j'ai donc dans mon index :
<a href="<?php echo $this->url(array('controller'=>'index', 'action'=>'choixlangue', 'id'=>'fr'));?>" class="langue"><?php echo $translate->_('choixFrancais');?></a>
et dans mon controller :
public function choixlangueAction() { $this->view->title = "Changement de langue"; }
Merci Théocrite sinon j'aurais jamais trouvé je crois
Hors ligne
Normalement il accepte, avec comme convention que la majuscule soit remplacé par un tiret suivit de la lettre en minuscule dans les appels (camel case dans le code, mais user-fiendly text dans les urls).
Hors ligne
Je sais pas, du coup j'ai commencé par laisser la majuscule dans ma fonction et remplacée par - + lettre en minuscule mais il en veut vraiment pas. (Je viens de re-tester ça passe pas).
J'ai quand même ma solution et c'est ça qui compte ^^
Hors ligne
C'est sûr, même si ça perd en lisibilité c'est toujours ça
Hors ligne
Oui effectivement l'erreur était évidente en fait .
Normalement ça devrait bien marcher : choixLangueAction => choix-langue
Hors ligne
Pages: 1