2010-11-24 17 views
2

ich die folgenden Controller in meiner Module haben ..Zend Framework Route

UserController.php AdminUserController.php

die Route für die Admin-Controller geht nun an: Modul/admin-Benutzer/(Standardverhalten)

/admin/module/user

Antwort

2

Sie wil:

Wie kann ich einen Weg machen, damit alle Admin- wird geändert werden Ich muss eine benutzerdefinierte Route schreiben.

In Code:

$front = Zend_Controller_Front::getInstance(); 
$router = $front->getRouter(); 
$route = new Zend_Controller_Router_Route(
    'admin/:module/user', array('controller' => 'admin-user')); 
$router->addRoute('module-admin-router', $route); 

In einer INI-Datei (Ich mag mich von application.ini getrennt halten):

[routes] 
routes.module-admin-router.type = "Zend_Controller_Router_Route" 
routes.module-admin-router.route = "archive/:module/user" 
routes.module-admin-router.defaults.controller = "admin-user" 

Dann werden Sie, dass die Anwendung Abschnitt Bootstrap müssen, damit die Routen;

protected function _initRoutes() 
{ 
    // setup routes here. 
    $front = $this->getResource('frontcontroller'); 
    $router = $front->getRouter(); 
    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'routes'); 
    $router->addConfig($config->routes); 

} 

Diese Route wird jede admin/module/Benutzeranforderung entspricht und an die AdminUserController innerhalb des Anpassungsmodul senden.

So etwas sollte funktionieren. Wenn die Dinge wirklich kompliziert werden, müssen Sie wahrscheinlich den Regex-Router durchsuchen - aber das ist so einfach, wie ich es mir vorstellen kann.

+0

Ist es möglich, es in der application.ini mit dem Regex-Router zu tun: P wie ich alle Module auf die gleiche Weise weitergeleitet werden müssen. – Chris

+0

aktualisierte meine Antwort. –

+0

Danke, aber ich kann nicht scheinen, Variablen im verwendeten Controller zu erhalten. Beispiel: resources.router.routes.module-admin-router.route = "admin /: Modul /: controller /: aktion" resources.router. routes.module-admin-router.defaults.controller = "admin-: controller" Funktioniert nicht :( – Chris