Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai besoin d'utiliser une cle/valeur , mais j'ai de la misère a comprendre comment sa fonctionne.
Mon appel est le suivant.
http://localhost/MonSite/public/cours/adultes/avancee
Mon fichier .
<?php class CoursController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function adultesAction(){ } }
Je suis coincé la , je voudrais pouvoir atteindre la valeur avancee .
Quelqu'un aurait une solution , indice ou de la lecture car sur le site de zend .... c'est pas évident.
Je vous remercie beaucoup.
Hors ligne
non il s'agit de clef valeur
donc
http://localhost/MonSite/public/cours/adultes/clef1/valeur1/clef2/valeur2
du coup dans ton url
http://localhost/MonSite/public/cours/adultes/avancee
avancee est une clef et non une valeur
http://localhost/MonSite/public/cours/adultes/mode/avancee
ici la clef est mode et la valeur avancee
dans ton action tu fait
$this->_request->getParam('mode')
et tu aura ta valeur
A+JYT
Hors ligne
Et par la suite ? .... je vais chercher le .phtml lié a la page ... avec Render() ... ?
Hors ligne
non le phtml est toujours celui de ton action
les clef valeur c'est comme si tu faisait
http://localhost/MonSite/public/cours/adultes/?mode=avancee
Hors ligne
Ohhhhh.....
ok...
Mais dans mon cas adultes.phtml j'ai rien a y mettre , ce n'est pas une catégorie.
Je suis supposé avoir
- public/cours/adultes/mode/avancee
- public/cours/adultes/mode/regulier
- public/cours/adultes/mode/horaire.
Je pensais que j'aurais avancee.phtml , regulier.phml et horaire.phtml
Hmmm c'est pas trop clair et le livre que j'ai acheté pour zend , n'indique pas ce genre de cas de figures...
Hors ligne
trois solutions
soit un appel explicite à render dans le contrôleur et donc un phtml pour chaque mode
il faut faire attention de ne pas faire un rendu du phtml du module et de adulte.phtml ensuite la doc explique bien comment faire. dans ce cas c'est comme si tu avais trois rendu différent.
soit tu laisse l'appel std à phtml et dans adulte.phtml tu fais un include du bon phtml en fonction du mode
include $this->mode . '.phtml';
enfin en dernière solution un seul .phtml (adulte.phtml) avec des partie variables en fonction du module
A+JYT
Hors ligne
Es-ce qu'il y a de la doc claire à ce sujet ?
Je voudrais connaître la façon standart de Zend d'utiliser Zend_Controler et le modele Action/cle/valeur
Parce qu'il me semble que de faire des includes dans mon adultes.phtml est à l'encontre du principe du MVC.... Le traitement devrait être fait dans le contrôleurs.
Pas évident tout sa ... et j'ai regardé la documentation sur le site de zend et c'est pas spécialement claire... très de détail sur 22000 trucs différents mais pas d'exemple concret sur du simple.
Hors ligne
Petit up , car j'ai vraiment besoin d'un coup de pouce :S....
Hors ligne
Renko a écrit:
Parce qu'il me semble que de faire des includes dans mon adultes.phtml est à l'encontre du principe du MVC.... Le traitement devrait être fait dans le contrôleurs..
exactement
dans ton cas tu devrais avoir des URL dans ce genre : http://serveur.tld/public/cours-adultes-avancee/ avec "public" le contrôleur et "cours-adultes-avancee" l'action
ou en utilisant les modules tu peux avoir http://serveur.tld/public/cours/adultes-avancee/ avec "public" le module, "cours" le contrôleur et "adultes-avancee" l'action
si tu as besoin de plusieurs niveaux de module tu peux voir là :
http://www.developpez.net/forums/d85834 … ntroleurs/
Hors ligne
Je veux pas faire de l'url rewrite pour l'instant , le problème est pas la, ni crée des controleurs qui ferais pas de sens au point de vue MVC comme un controleur cours-adultes-avancee ...
Actuellement dans mon controleur cours, j'arrive à savoir si la page qui est appelé est parents/cours/soir ou parents/cours/jour ou wathever ,
Moi je veux juste comprendre la façon standard ..... de lier finalement le fait que ce soit cours/soir qui soit sous parents à une page .phtml
As simple as this .... mais on dirais que , soit c'est pas sa pentoute , soit je cherche tout croche sur google , parce que je vois rien qui en parle....
Hors ligne
Si tu cherche à afficher une liste de cours en fonction d'une de la catégorie (adultes) ou la sous-catégories (avancee) choisie j'opterais pour un CoursController avec un ListAction().
La vue qui sera rendu est list.phtml où normalement tu n'as qu'à boucler sur tes cours pour les affichers
Ou bien j'ai rien compris à ton problème :S
Hors ligne
/cours/adultes/special/soir
/cours/adultes/special/jour
/cours/adultes/special/nuit
CoursController
AdultesActions()
Ensuite comment je render mon soir.phtml , jour.phtml ou nuit.phtml en fonction de ce qui est passé et non je ne veux pas faire /cours/adultes/special-jour
Je pourrais le faire dans un un special.phtml , faire un render directement dans le .phtml selon le parametre passé mais ce serais anti-MVC.
Hors ligne
Un petit up .... j'ai beau avoir chercher sur le web j'ai l'impression d'être la seule personne au monde qui a besoin de faire /cours/adultes/special/soir
tout le monde se contente de faire /cours/adules-special-soir qui va pointer ... J'ignore comment sur /views/scripts/cours/adultes/special/index.phtml
Dire que je trouvais struts compliqué ....
Hors ligne
Il faut configurer une route pour que /cours/adules-special-soir pointe sur cours/adultes/special/index.phtml
ps : il me semble que ta pas bien compris le principe de bcp de point important du ZF tu devrais bien lire la doc.
ps2 : les première réponses, notamment celle de sekaijin contiennent tous les éléments de réponse je ne comprend pas ou tu bloque
Hors ligne
Je ne veux pas faire /cours/adultes-special-soir
Je veux pouvoir avoir /cours/adultes/special/soir et que sa pointe sur
/cours/adultes/special/index.phtml
J'ai lu et re-lue et re-re-lue la documentation sur le zend_controller sur le site du framework et j'ai rien vu qui ressemble a sa , toute leurs exemple se limitent a controlleur / action.
La solution de sekaijin de faire un include est anti-MVC. Je suis certain qu'il y a une façon standart de faire ce que je veux faire...
Hors ligne
oui, il vaut mieux utiliser view->render('xxx.phtml') je pense .
personnellement, c'est ce que je fais et je transmets les données par un view->xxx=$quelquechose qui peut être un objet, un array etc... Ce view->xxx étant rempli dans l'action du controlleur.
Dans xxx.phtml, je récupère les données en faisant:
printf("<p>%s</p>",$this->xxx->quelquechose);
Hors ligne
Pages: 1