Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je m'explique: dans mon admin, j'ai par exemple une action "modifier user", que j'appelle ainsi:
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'modif', 'id'=>$user->id));?>">Modifier</a>
Bien, ainsi je passe l'id de l'user dans l'url. J'ai une url qui se termine ainsi: /admin/user/modif/id/6
Sur la page de modification, j'ai mis un lien pour revenir en arrière, ainsi:
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'index')); ?>"><< Retour</a>
Ce qui me gêne c'est que les paramètres "/id/6" restent dans l'url. (je me retrouve avec une url qui se termine ainsi: /admin/user/index/id/6)
Je ne pense pas que cela soit un problème (non?si?), mais je preferais pour "nettoyer" l'url lors du retour, pour atterir sur la page .../admin/user/index/
Comment faire?
J'ai essayé passer "reset" a true dans $this->url, mais du coup cela me rammene au module par defaut, alors que je veux rester dans le module admin.
Je n'ai pas défini de routes.
Merci a+!
Dernière modification par pozowebs (01-08-2008 14:51:33)
Hors ligne
Hello
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'index'), null, false); ?>"><< Retour</a>
A+
Hors ligne
Salut,
essaie avec ça
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'index'),"default", false); ?>"><< Retour</a>
Avec le default à la place de null
Hors ligne
Toujours pas.
D'autant plus que je ne veux pas revenir au module par default, mais rester dans le module admin (pour aller a admin/user).
J'ai essayé
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'index'),"admin", false); ?>"><< Retour</a>
mais tant que je met false les param restent dans l'url.
Si je passe a true:
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'index'),"admin", true); ?>"><< Retour</a>
J'ai une erreur:
Fatal error: Uncaught exception 'Zend_Controller_Router_Exception' with message 'Route admin is not defined' in...
Hors ligne
Salut,
default, ou admin dans ta version, ne correspond pas au module mais au nom de la route que tu désire utiliser si c'est une route personnalisée.
Désolé j'ai fait un copier-coller un peu rapide.
Passe le nom de la route à default et le dernier parametre à true.
Ce qui va te donner :
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'index'),"default", true); ?>"><< Retour</a>
Plus d'explications ici : http://www.z-f.fr/forum/viewtopic.php?id=1597
Cordialement,
Kaimite
Hors ligne
C'est très simple, si tu veux enlever un paramètre sans faire un reset de ta route, il te suffit de le mettre à null.
<a href="<?=$this->url(array( 'controller'=>'user', 'action'=>'index', 'id'=>null, )); ?>"><< Retour</a>
Hors ligne
Merci bien!
Les deux solutions fonctionnent.
Mettre le paramètre que je veux eliminer de l'url à null (dans cet exemple, "id"):
<a href="<?php echo $this->url(array('controller'=>'user', 'action'=>'index', 'id'=>null)); ?>">Retour</a>
Ou bien faire un reset de la route (en passant en param le nom du module "admin", sinon cela me renvoit au module par default):
<a href="<?php echo $this->url(array('module' => 'admin', 'controller'=>'user', 'action'=>'index'), "", true); ?>">Retour</a>
Hors ligne