Bonjour,
je souhaiterais récupérer la vue dans laquel je me situe. J'ai vu les méthodes pour récupérer une action, un controleur mais pas pour la vue.
Merci pour vos réponses
Bonjour,
je souhaiterais récupérer la vue dans laquel je me situe. J'ai vu les méthodes pour récupérer une action, un controleur mais pas pour la vue.
Merci pour vos réponses
Bonjour,
Peux-tu être plus clair dans ta question, merci.
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
Yes! autant pour moi.
Alors, on voit ici que l'on peut récupérer un module, un controleur, une action:
http://zend-framework.developpez.com...ontroller-noms
Moi, je voudrais récupérer le nom dans la vue dans laquelle je me situe, si c'est possible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $this->view->module = $this->getRequest()->getModuleName(); // recupere le module $this->view->controller = $this->getRequest()->getControllerName(); // recupere le controller $this->view->action = $this->getRequest()->getActionName(); // recupere l'action
Par exemple, tu as un lien :
http://localhost/zendf/public/index/contact
Je voudrais récuperer 'contact'. Un peu dans ce style la $_SERVER['REQUEST_URI'] mais sans toute l'url.
J'espère avoir été clair, sinon dis le moi!
Bien si tu utilise le MVC, ton fichier est une concaténation des trois ékléménts situé ci-dessus + l'extension .phtml.
Sinon il y a __FILE__
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
Oui, j'utilise le MVC(je débute).
Ces 3 méthodes me retournent respectivement ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 echo $this->module.'<br>'; //retourne : default echo $this->controller.'<br>'; //retourne : index echo $this->action.'<br>'; //retourne : chemin
Mais j'arrive pas récupérer le nom de la vue dans laquelle je me situe.
La variable $_SERVER['REQUEST_URI'], si je me situe
sur ma page 'contact' , je récupère :/zendf/public/index/contact
sur ma page portefolio ca sera /zendf/public/index/portefolio
etc...
Je pourrais aller chercher ma vue directement dans cette url, mais je me dis qu'il doit avoir quelque chose de plus agréable, que de faire du bidouillage
Je suis pas sur, puisque ta vue doit porter le nom de ton Action.
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
Bonjour miya,
Y une toute petite chose que je voudrais comprendre, en plus du but que je ne comprends bien.
Par défaut, le nom de la vue dans laquelle tu trouves est le nom de l'action (+.phtml) du contrioller dans le dossier qui prote le nom du controller.
Donc tu as le nom de la vue avec le nom de l'action, à mon que tu fasses un render() dans ton controller et alors c'est toi qui a choisi abitrairement choisi une vue dont tu dois aussi connaître le nom...
Dis moi si j'ai raté un épisode.
A+,
Olivier
En faite le but de tout ca c'est de créer mon chemin de fer. Donc pour cela, je dois savoir dans quelle vue je me situe, et je remonte à ces parents. Dans un nouveau post, je posterai dans la journée l'ensemble du code, pour savoir ce qu'en pense le forum.
vous me donnerez vos avis
myia,
Juste par curiosité, j'ai un peu regardé la doc pour voir de quelle manière tu pourrais récupérer le script de vue.
Voici les 2 solutions que j'ai trouvé :
1. Dans l'action de ton controller, tu peux faire :
Attention, ici tu auras le chemin començant par le repertoire du controller, pas ce qui vient avant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public monAction() { ... // Ici tu passe le chemin de ton script de vue à la variable currentScript $this->view->currentScript = $this->getViewScript(); }
2. Dans ta vue si tu as le nom de l'action (dans un variable 'action' par ex.), tu peux faire :
Attention ici, tu ne verras le chemin complet jusqu'au répertoire qui contient le script. Mais pas le nom du script lui-même. En même temps tu sais que le nom du script lui-même, c'est : $this->action.'.phtml'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2... <?= $this->getScriptPath($this->action) ?>
Voilà, je suis quand toujours curieux de savoir pourquoi tu as besoin de ceci.
Il doit avoir une meilleure manière d'atteindre ton but.
Expose nous le problème de fond.
PS: Une bonne manière de savoir quelles sont les methodes dont tu disposes par classe, c'est de consulter : http://framework.zend.com/apidoc/core/
Merci pour ta réponse. Mais sans succès avec ces méthodes.
J'ai résolu mon problème avec ceci :
Merci pour le lien apidoc! je ne le connaissais pas!
Code : Sélectionner tout - Visualiser dans une fenêtre à part $vue = basename($_SERVER['REQUEST_URI']);
La suite du post, c'est ici :
http://www.developpez.net/forums/d65...on-chemin-fer/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager