Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-04-2008 08:44:34

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

[1.5][Zend_Controller] Passage de paramétres dans l'url

Bonjour à tous,

Par défaut, le controller est configuré pour passer deux paramètre.

monsite.com/index/nomparam1/valeurparam1/nomparam2/valeurparam2

Je voudrais reconfigurer le router pour pouvoir rajouter autant de paramètre que je veux. Je suis actuellement en fonctionnement par module et multilangue.

Code:

$router = $frontController->getRouter();
$router->addRoute(
    "basic",
    new Zend_Controller_Router_Route(
        "/:language/:module/:controller/:action/:parameter1/:parameter2",
        array(
            "language"=>"fr",
            "module"=>"album",
            "controller"=>"index",
            "action"=>"index",
            "parameter1"=>null,
            "parameter2"=>null)
    )
);

Je ne peux donc plus passer les paramètres comme dans la configuration par défaut et je n'arrive pas à le remettre.
J'ai essayé en enlevant tout ce qui à un rapport avec les paramètres mais cela ne donne rien.

Avez vous une idée?

Merci d'avance.

Hors ligne

 

#2 16-04-2008 09:46:49

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.5][Zend_Controller] Passage de paramétres dans l'url

Pour faire ça j'utilise les Router_Regexp :
http://framework.zend.com/manual/en/zen … utes.regex
Et je fais mon parsing d'URL (enfin de chaque bout d'URL concerné par le routage) à la main dans un plugin...

Il y a peut-être plus simple, mais bon ça marche en tout cas, et tu es très libre avec ton URL...

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 16-04-2008 10:11:22

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5][Zend_Controller] Passage de paramétres dans l'url

Ben c'est sur que là, y'a conflit
Ce que tu peux faire, c'est d'utiliser le routeur Router_Regexp comme dit philippe (mais je dirais pas besoin d'un parsing, le routeur le fera).
Et le truc serai d'indiquer que le :language ne fait que 2 chars genre [a-z]{2} et du coup (si t'as pas de nom de controller à 2 chars) ça devrait régler l'affaire (à voir smile )

Hors ligne

 

#4 16-04-2008 13:08:33

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [1.5][Zend_Controller] Passage de paramétres dans l'url

Code:

$router = $frontController->getRouter();
$router->addRoute(
    "basic",
    new Zend_Controller_Router_Route(
        "/:language/:module/:controller/:action/:parameter1/:parameter2/:parameter3",
        array(
            "language"=>"fr",
            "module"=>"album",
            "controller"=>"index",
            "action"=>"index",
            "parameter1"=>null,
            "parameter2"=>null,
            "parameter3"=>null)
    )
);

un truc du genre ça ça marche pas ?

Hors ligne

 

#5 16-04-2008 13:57:13

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [1.5][Zend_Controller] Passage de paramétres dans l'url

sekaijin a écrit:

Code:

$router = $frontController->getRouter();
$router->addRoute(
    "basic",
    new Zend_Controller_Router_Route(
        "/:language/:module/:controller/:action/:parameter1/:parameter2/:parameter3",
        array(
            "language"=>"fr",
            "module"=>"album",
            "controller"=>"index",
            "action"=>"index",
            "parameter1"=>null,
            "parameter2"=>null,
            "parameter3"=>null)
    )
);

un truc du genre ça ça marche pas ?

Non, cela ne marchera puisque, d'une part, tu es limité à 3 paramètres et je ne voudrais pas avoir de limite du tout. D'autre part, tu dois appeler tes paramètres "parameter1/2/3", donc cela dépend de la position dans l'url et non du nom de la variable.

Je souhaiterais plus avoir quelque chose comme:
"/:language/:module/:controller/:action/id/:monumero/categorie/:unnom/etc/:autreparamètre"

ce qui ressemble plus au fonctionnement normale de php avec monsite.com/mapage.html?id=12&categorie=news&etc=....

Pour le Router_Regexp je vais lire la doc pour mieux comprendre (même si pour l'instant, la doc ne m'aide pas trop. Je ne la trouve pas terrible)

Le but est juste d'avoir des duos, nomduparam/valeurduparam, comme c'est déjà fait avec la configuration par défaut mais je n'arrive pas à le reproduire.

Dernière modification par slaughter (16-04-2008 14:05:04)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages