Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-06-2009 09:49:33

touriste57
Nouveau membre
Date d'inscription: 23-06-2009
Messages: 6

[Résolu] Ecrire une route simple

Bonjour,

Je travaille avec Zend 1.8 et je voudrais réécrire mes url afin de passer de cette url : http://localhost/nomsiteweb/public/concession/index/id/1
à une url du type : http://localhost/nomsiteweb/Consession_machin

concession ==> controleur
index ==> action
id==> parametre
1 ==> valeur parametre

Concession_ ==> chaine fixe
machin ==> valeur récupéré dans la base mysql en fonction du paramètre

Merci d'avance de votre aide,

Dernière modification par Mr.MoOx (26-06-2009 10:59:50)

Hors ligne

 

#2 23-06-2009 10:44:14

touriste57
Nouveau membre
Date d'inscription: 23-06-2009
Messages: 6

Re: [Résolu] Ecrire une route simple

Bon,

Comme ma question à l'air compliqué j'ai essayé de trouvé par moi même mais c'est galère !!!!

Je suis persuadé de ne pas être très loin mais j'ai ce message d'erreur :
Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (ml)

L'url appelé est : http://127.0.0.1/monsite/public/concession_1.html

Je travaille avec Wamp et Zend 1.8

Voici mon bootstrap :

Code:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    function _initViewHelpers() {
        $this->bootstrap('layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();
        
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
        $view->headTitle()->setSeparator(' - ');
        $view->headTitle('Concession');
        $frontController = $this->getResource('FrontController'); 

        $frontController->throwExceptions(true);  // renvoie les exceptions au lieu de les ajouter à la réponse
        // $frontController->throwExceptions(false);  // utilise ErrorController 
        

        $frontController->setBaseUrl('/autoscoot/public');
        $response = new Zend_Controller_Response_Http();
        //$response->setRawHeader('Content-type: text/html; charset=utf-8');
        $frontController->setBaseUrl('http://127.0.0.1/monsite/public');
        // passage de la réponse configurée au système MVC
        $frontController->setResponse($response);
                
        $router = $frontController->getRouter();
        
        $route = new Zend_Controller_Router_Route_Regex(
            '/concession_(.+).html',
            array(
                'module'=>'default',
                'controller' => 'Concession',
                'action' => 'Index'
            ),
            array(
                1=>'id'
            ),
            'concession_%d.html'
        );      
        $router->addRoute('routeId', $route);

        
    }
    
    protected function _initAutoload() {
        $moduleLoader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath' => APPLICATION_PATH));
        return $moduleLoader;
    }

}

Merci de m'aider car je suis complètement pommé

Hors ligne

 

#3 23-06-2009 11:37:09

manuscle
Nouveau membre
Date d'inscription: 05-02-2009
Messages: 3

Re: [Résolu] Ecrire une route simple

Salut,

Je pense que ta regex est pas bonne, essaie ça :

concession_(\d+).html

de plus je ne sais pas si il faut pas mettre de slash avant concession.....

Dernière modification par manuscle (23-06-2009 11:37:56)

Hors ligne

 

#4 23-06-2009 13:54:18

touriste57
Nouveau membre
Date d'inscription: 23-06-2009
Messages: 6

Re: [Résolu] Ecrire une route simple

Merci,

Maintenant ca marche. Voici le code source

Code:

        $router = $frontController->getRouter();
        $route = new Zend_Controller_Router_Route_Regex(
            '(.+)-(.+)',
            array(
                'controller' => 'Concession',
                'action'     => 'index'
            ),
            array(
                1 => 'concess_nom',
                2 => 'concess_ville'
                
               
            ),
            'public/%s-%s'
        );
        $router->addRoute('concession2', $route);

J'ai même supprimer la chaine concession

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