Dans mon fichier de démarrage, j'ai la chaîne de routage suivante. Le comportement souhaité est d'envoyer toute demande via /usa/:controller/:action
au module local. Par exemple, lorsque http://{hostname}/usa/index/index
est appelée, la requête passe par le module local, index controller, index action.Impossible d'obtenir les paramètres à l'aide de Zend Routing Chain
Le problème que j'ai est d'ajouter des paramètres. Par exemple, quand je demande http://{hostname}/usa/index/index/id/5
pour essayer d'obtenir le paramètre id
, je reçois le message d'erreur suivant: An Error occurred. Page not found. Exception information: Message: Invalid controller specified (usa)
avec les params demande suivantes:
array (
'controller' => 'usa',
'action' => 'index',
'id' => '5',
'module' => 'default',
)
Comment puis-je configurer le routage de la chaîne afin d'utiliser encore d'autres paramètres?
Voici mon code dans le fichier de lancement de l'application:
protected function _initRouting(){
$router = Zend_Controller_Front::getInstance()->getRouter(); // Get the main router from the front controller.
$router->addDefaultRoutes(); // Don't forget default routes!
//get default local route (directs to the local module)
$defaultLocalRoute = new Zend_Controller_Router_Route(
'/:controller/:action',
array(
'module' => 'local',
'controller' => 'index',
'action' => 'index'
)
);
$regionRoute = new Zend_Controller_Router_Route(
'/usa/',
array('region' => 'usa')
);
//chain this region route to the default local route that directs to the local module
$fullRegionRoute = $regionRoute->chain($defaultLocalRoute);
//add the full route to the router (ie. hamiltonRoute, atlanticcaRoute)
$regionRouteName = 'usaRoute';
$router->addRoute($regionRouteName, $fullRegionRoute);
}