Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai un petit problème avec la réecriture d'url lorsque je passe pas un fichier ini.
Mes urls sont de la forme: .../news/5-titre-de-la-news.html
Et je veux récuperer le "5" qui est l'id de la news.
Au départ, je faisais la reécriture directement dans le bootstrap, de la façon suivante (qui marche)
$routeNews = new Zend_Controller_Router_Route_Regex( 'news/(\d+)-(.+)\.html', array( 'controller' => 'noticia', 'action' => 'detalle', 'module' => 'default' ), array( 1 => 'nid' ), 'news/%d-%s.html' ); $router->addRoute('News', $routeNews);
Bien, maintenant je voudrais faire la même chose en utilisant un fichier routes.ini
donc j'ai commencé par ajouté ceci dans le boostrap:
// Chargement des routes dans le fichier config.ini $configRoutes = new Zend_Config_Ini('../application/routes.ini', null); $router = new Zend_Controller_Router_Rewrite(); $router->addConfig($configRoutes); $frontController->setRouter($router);
et voici mon fichier routes.ini:
noticias.type = "Zend_Controller_Router_Route_Static" noticias.route = "news.html" noticias.defaults.module = "default" noticias.defaults.controller = "noticia" noticias.defaults.action = "index" noticia.type = "Zend_Controller_Router_Route_Regex" noticia.route = "news/(\d+)-(.+)\.html'" noticia.defaults.module = "default" noticia.defaults.controller = "noticia" noticia.defaults.action = "detalle" noticia.map.1 = "nid" noticia.reverse = "news/%d-%s.html"
... La route static fonctionne (ce qui prouve que le fichier routes.ini est utilisé), mais la route Regex ne fonctionne pas...
Je précise que je ne suis pas familier avec les fichiers ini... Une idée?
Merci
Dernière modification par pozowebs (26-09-2008 01:53:36)
Hors ligne
Essaye en rajoutant un
noticia.defaults.nid= 1
Hors ligne
Peut etre en ajoutant routes devant noticias ?
routes.noticias.type ... .... ...
Et aussi :
$frontController->throwExceptions(true) ->getRouter()->addConfig($route, 'routes');
Dernière modification par alien7 (25-09-2008 17:55:21)
Hors ligne
Tu es aller voir la doc de zend ?
http://framework.zend.com/manual/fr/zen … add-config
Hors ligne
alien7 a écrit:
Tu es aller voir la doc de zend ?
http://framework.zend.com/manual/fr/zen … add-config
oui, je suis parti de cet exemple, mais comme je n'arrive pas à le faire fonctionner, j'essaye de comprendre.
comment et par qui est interpreté un fichier ini? et comment "traduire" le contenu du boostrap (voir mon premier post) en fichier ini?
merci a+
Hors ligne
Pourquoi le null ?
$configRoutes = new Zend_Config_Ini('../application/routes.ini', null);
Dernière modification par alien7 (25-09-2008 20:42:46)
Hors ligne
alien7 a écrit:
Pourquoi le null ?
Code:
$configRoutes = new Zend_Config_Ini('../application/routes.ini', null);
le null c'est pour charger l'ensemble du fichier ini.
voir Table 6.1. Zend_Config_Ini Constructor parameters (http://framework.zend.com/manual/en/zen … s.ini.html):
The [section] within the ini file that is to be loaded. Setting this parameter to null will load all sections. Alternatively, an array of section names may be supplied to load multiple sections.
Hors ligne
haaaa j'ai trouvé! la honte!!!! Il s'agissait d'une erreur de syntaxe dans la ligne suivante:
noticia.route = "news/(\d+)-(.+)\.html'"
il y a un ' qui se promène à la fin de la ligne avant le "...
bouahhh... Merci à tous pour vos réponses. Je vais pouvoir dormir tranquil maintenant! a+!
Hors ligne
Bouuuuuuh...
Je suis passé plusieurs fois sur ce post sans voir cette erreur
Dernière modification par mikaelkael (26-09-2008 09:42:37)
Hors ligne
mikaelkael a écrit:
Bouuuuuuh...
Je suis passé plusieurs fois sur ce post sans voir cette erreur
hahaha... désolé ... si vous voulez creer un nouveau topic "Erreurs stupides" je veux bien participer avec cette erreur...
...
Hors ligne
Pages: 1