|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre expérimenté
![]() ![]() |
Bonjour,
Bon, jusqu'à présent, j'utilisais des URL du type : Typiquement : site?sid=5 J'aimerais transformer çà en : site/google.fr (en supposant ici que 5 soit l'ID du site google.fr, bref...) Je me tourne donc sur le fichier monapp/config/routing.yml Et j'ouvre la doc symfony 1.4..... Et je n'y arrive toujours pas :p, j'ai besoin d'un petit coup de main SVP Si je suis la doc, je crois que je dois écrire quelque chose comme : Code :
Est-ce écrit correctement, sinon comment l'écrire ? Et comment générer la bonne URL dans un contrôleur et dans un template avec url_for() ? Merci d'avance pour votre aide.
__________________
"Computers are like Old Testament gods ; Lots of rules and no mercy" [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell Dénoncez les arnaques internet ! Consulter mon C.V. en ligne. |
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Vinciane Développeur Web Inscription : novembre 2010 Messages : 66 ![]() |
Est-ce que hostname est bien le nom de la colonne dans lequel ton google.fr est contenu?
Par ailleurs, ce qui se trouve dans param me semble correct. url_for() se construit ainsi, du moins, dans sa forme simplifiée: Donc par exemple: Code :
__________________
Symfony par une débutante - Elgg - PHP Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom.. "The cake is lie" - Doug Rattman, Portal |
||
|
00
|
|
|
#3 | ||
|
Membre expérimenté
![]() ![]() |
J'ai beau essayer de plein de manières différentes, je n'y arrive pas...
Voici mes différents essaie, rien n'a marché, il doit sûrement manquer quelque chose... Mon objet Site a effectivement un attribut hostname Le routing : Code :
Code :
The "/site/:hostname" route has some missing mandatory parameters (:hostname). -------------------------------------------------------- Code :
$this->redirect('site', array('hostname' => $site->hostname)) Code :
Empty module and/or action after parsing the URL "/site/google.com" (/).
__________________
"Computers are like Old Testament gods ; Lots of rules and no mercy" [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell Dénoncez les arnaques internet ! Consulter mon C.V. en ligne. |
||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Vinciane Développeur Web Inscription : novembre 2010 Messages : 66 ![]() |
Attention, ce n'est $site->hostname qui permet de récupérer le hostname mais
Essaie un peu de le rajouter dans tes redirections.
__________________
Symfony par une débutante - Elgg - PHP Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom.. "The cake is lie" - Doug Rattman, Portal |
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() ![]() |
Non, ->hostname et getHostname(), c'est pareil je pense, en tout cas çà renvoie pareil.
J'ai réussi à faire une URL sous la forme : Au lieu de se que je souhaiterais : En fait, je ne peux pas supprimer l'action de l'URL, ni renommer le module, le matching ne se fait pas sinon. Si quelqu'un sait comment faire...
__________________
"Computers are like Old Testament gods ; Lots of rules and no mercy" [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell Dénoncez les arnaques internet ! Consulter mon C.V. en ligne. |
|
|
00
|
|
|
#6 | ||
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Bonjour Brice,
Selon la documentation officielle http://www.symfony-project.org/api/1...ethod_redirect, les 2eme paramètre est le code HTTP. Pourquoi ne pas tenter ça : Code :
Mathieu |
||
|
00
|
|
|
#7 | |||
|
Membre expérimenté
![]() ![]() |
Citation:
Code :
$this->redirect($this->getController()->genUrl(..., ...)) J'ai réussi à avoir une URL de la forme : Code :
http://.../sites/scorecard/hostname/google.com
Code :
Code :
$this->redirect($this->getController()->genUrl('sites/scorecard?hostname='.$result['found']->getVeryShortHostname())); Ce que j'aimerais c'est avoir le même fonctionnement mais avec une URL du style : Est-possible ?
__________________
"Computers are like Old Testament gods ; Lots of rules and no mercy" [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell Dénoncez les arnaques internet ! Consulter mon C.V. en ligne. |
|||
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
est ce que tu peux afficher ce que te renvoies un :
Code :
var_dump($this->getController()->genUrl(..., ...)); |
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() ![]() |
Code :
http://.../sites/scorecard/hostname/google.com
__________________
"Computers are like Old Testament gods ; Lots of rules and no mercy" [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell Dénoncez les arnaques internet ! Consulter mon C.V. en ligne. |
|
|
00
|
|
|
#10 | ||
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Je pense que tes URLs dans ton routing se croisent.
Essayes de commenter ta route @scorecard dans ton routing et de faire une redirection simple : Code :
|
||
|
00
|
|
|
#11 | ||||||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Puis-je me permettre de jeter mon grain, de sel, sur la route ?
L'idée est bonne et les conseils judicieux mais il n'y a pas une grosses erreurs ici, mais plusieurs petites, et il faudra toutes les corriger pour arriver à faire marcher la chose. Pour la route, je ne suis pas très sur qu'envoyer une url ainsi, dans le chemin soit une très bonne idée, notamment à cause des "/" qui pourraient s'y trouver et perturber notablement le moteur de route de symfony. Je serais plutôt partisan de partir du nom du site slugifier. Doctrine introduit des outils permettant de générer facilement un slug unique pour chaque enregistrement. Il est aussi possible de slugifier l'url. Pour la route ta déclaration : Code :
Pour que cela marche il faut appeler ta route de la manière suivante : Code :
Code :
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||||||
|
00
|
|
|
#12 | ||
|
Membre habitué
![]() Ludovic HenryÉtudiant Inscription : octobre 2009 Messages : 97 ![]() |
Par contre, il y a une erreur dans la déclaration de ta route. Si tu veut utiliser la chose suivante :
Il faut que ta route utilise une sfDoctrineRoute ( si tu utilise l'ORM Doctrine ) Donc ta route doit être de la forme: Code :
|
||
|
|
00
|
|
|
#13 | |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Citation:
![]() En fait, cela marche même avec des requêtes PUT et autres.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() |
Court et assez bien fait :
http://www.symfony-project.org/jobee...Doctrine/fr/05 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com