[Symfony 1.4] une route avec un hash ( # )

Eléphant du PHP | 314 Messages

08 juin 2010, 09:59

Bonjour,

dans ma quête du saint graal d'initiation à l'utilisation du Framework symfony ( en autodidacte btw ), j'ai décidé de faire un weblog, je serait sans doute amener a vous posez régulièrement des questions :)

[mavie]
Je pense avoir déjà bien avancé dans la création de celui ci : Listing des billets page/page, affichage d'un billet, tri par catégorie...c'était pas une mince à faire quand on ne connait pas bien le FMK. J'ai fini hier soir le module de commentaire : un visiteur est maintenant capable de poster un commentaire à la suite d'un billet.
[/mavie]

A la base, je m 'était dis qu'après l'enregistrement de ce dernier, je redirigeais le visiteur vers la page de l'article, cependant il m'est venu une idée toute autre : le rediriger vers son commentaire. Pour cela, j'ai astucieusement ( normal en fait ) placer une ancre à l'emplacement de ce dernier, donc logiquement accessible par urldelapage#ancre. mais je n'arrive pas à trouver comment rediriger mon visiteur ( avec $this->redictect dans l'action ) en ajoutant cet ancre. J'ai logiquement pensé qu'il faudrait le mettre dans routing.yml, mais, sauf erreur de ma part, le # est synonyme de commentaire... Comment puis-je donc faire cela ?
Cordialement,
Julien - http://laravel.fr/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 juin 2010, 11:25

Le routing.yml ne permet pas de définir les ancres, juste les routes générique.
Par exemple :

Code : Tout sélectionner

maroute: url: /foobar/:monparam.html param: { module: monmodule, action: monaction }
Par contre, si tu veux passer une ancre pour construire l'url, tu peux faire un truc du genre :
link_to('Mon lien', '@maroute?monparam=mavaleur#monancre')
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 314 Messages

08 juin 2010, 11:34

Bonjour zeus,

cela me semblait aussi improbable de coller un hash dans mon fichier routing mais je voyais pas d'autre solution, car actuellement j'utilise quelque chose comme :
$this->redirect('@maroute',$monobjet);
avec une sfDonctrineRoute.

Je testerai chez moi à midi - on est dans le tripe ou on l'est pas :lol: - comme ceci
$this->redirect('@maroute?id='.$monobjet->getId().'&slug='.$monobjet->getSlug().'#monancre');
puis je vous tiendrai au courant !
Cordialement,
Julien - http://laravel.fr/

Eléphant du PHP | 314 Messages

08 juin 2010, 13:45

Un petit retour, ça a marché comme un charme ! Je te remercie !
Cordialement,
Julien - http://laravel.fr/