IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

2 Regex identiques, 1 seul fonctionne


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Par défaut 2 Regex identiques, 1 seul fonctionne
    Bonjour,

    Je suis en train de modifier mes routes, et j'ai un soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    $route = new Zend_Controller_Router_Route_Regex(
    	'(.+)-(\d+)\.html',
    	array(
    	'action'        => 'edit',
    	'controller'    => 'groupes',
    	'page' 			=> 1
    	),
    	array(
    	1=>'title',
    	2=>'id'
    	),
    	'%s-%d.html'
    	);
    	$router->addRoute('fiche_sejour_groupes', $route);
    	///////////////////////////////////////////////////
     
    $route = new Zend_Controller_Router_Route_Regex(
    	'(.+)-(\d+)\.html',
    	array(
    	'action'        => 'edit',
    	'controller'    => 'individuels',
    	'page' 			=> 1
    	),
    	array(
    	1=>'title',
    	2=>'id'
    	),
    	'%s-%d.html'
    	);
    	$router->addRoute('fiche_sejour_individuels', $route);
    Mes vues :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $link = $this->url(array(
    			"title"	=> $this->friendlyUrls($row['title']),
    			"id"	=> $row['id_sejour'],
    			"page"	=> 1),
    			"fiche_sejour_individuels");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $link = $this->url(array(
    			"title"	=> $this->friendlyUrls($row['title']),
    			"id"	=> $row['id_sejour'],
    			"page"	=> 1),
    			"fiche_sejour_groupes");
    Les codes sont donc identiques.

    Dans le bootstrap avant ces 2 routes, j'ai 2 routes _Static et 3 _Router_Route. Et apres, une _Router_Route.
    J'ai essayé de changer l'ordre des routes, mais rien n'y fait.

    A priori, on ne pourrai pas créer 2 routes "identiques" meme avec un nom différent. Vous confirmez ?, peut-on faire autrement ?; En avoir une paramétrable avec le nom du controlleur ?

    Merci de votre aide.
    Fabrice

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par __fabrice Voir le message
    A priori, on ne pourrai pas créer 2 routes "identiques" meme avec un nom différent.
    oui parce que le routeur ne sais pas quelle route choisir

    montre nous ce que tu veux faire avec des exemples d'URL

  3. #3
    Membre éclairé
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - controller1/edit/10 :=> "titre-de-mon-url-10.html"
     
    - controller2/edit/85 :=> "titre-de-mon-url-85.html"
    Pour que cela marche, j'ai essayé d'inverser la place du id et du titre sans succes. Du coup, j'ai rajouté un texte dans la route : 'controller1-(.+)-(\d+)\.html' et 'controlleur2-(.+)-(\d+)\.html'.

    Mais le but serai d'avoir la meme route (paramétrable ?) avec les 2 controlleurs 'titre-de-mon-url-10.html'

    Merci
    Fabrice

  4. #4
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    à partir du nombre dans l'URL (10 ou 85 dans ton exemple), comment choisir entre controleur1 ou controleur2 ?

  5. #5
    Membre éclairé
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Par défaut
    on peut pas, c'est 2 tables différentes.

    Le choix se ferai dans l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $link= $this->url(array(
    		"title"	=> $this->friendlyUrls($row['title']),
    		"id"	=> $row['id_sejour'],
    		"page"	=> 1,
                    "controller" => "individuels"),
    		"fiche_sejour_individuels");
    Dans l'état actuel des choses , je fais juste çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $link = $this->url(array(
    		"title"	=> $this->friendlyUrls($row['title']),
    		"id"	=> $row['id_sejour'],
    		"page"	=> 1),
    		"fiche_sejour_individuels");
    Le choix du controlleur, qui n'est ai pas un (controlleur) c'est dans le nom de la route evidemment.

    Fabrice

  6. #6
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    dans ce cas il faut rajouter une information, par exemple une lettre suffit :
    titre-de-mon-url-10i.html -> individuels/edit/10
    titre-de-mon-url-10g.html -> groupes/edit/10

Discussions similaires

  1. [RegEx] Regex simple qui ne fonctionne pas
    Par Bruno.C dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2008, 15h05
  2. Double formulaire - un seul fonctionne
    Par Gwadadev dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/05/2008, 00h13
  3. [AJAX] [2 menu déroulant] 1 seul fonctionne
    Par Arbisis dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2008, 13h11
  4. macro identique qui ne fonctionne pas
    Par mindar dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/01/2008, 14h29
  5. Réponses: 8
    Dernier message: 27/06/2006, 07h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo