Как переименовать администратора модуля в Zend Framework

У меня проблема с перезаписью URL в Zend Framework, надеюсь, кто-нибудь поможет мне решить эту проблему.

Мне нужно переименовать администратора модуля как admindev в URL-адресе, применяемом для всех контроллеров и действий.

Здесь мой код пишется в Bootstrap.php:

public function _initModuleRoutes()
{
    $this->bootstrap('FrontController');
    $frontController = $this->getResource('FrontController');
    $router = $frontController->getRouter();
    $route = new Zend_Controller_Router_Route(
        'admindev/:action/*',
        array(
            'module'=>'admin',
            'controller'=>':controller',
            'action'=>':action'
        )
    );      
    $router->addRoute('admin',$route);
    return $router;
}

Спасибо всем,


person user1482817    schedule 09.11.2012    source источник


Ответы (1)


Вы не указали параметр :controller в маршруте.

Попробуйте так:

public function _initModuleRoutes()
{
    $this->bootstrap('FrontController');
    $frontController = $this->getResource('FrontController');
    $router = $frontController->getRouter();
    $route = new Zend_Controller_Router_Route(
        'admindev/:controller/:action/*',
        array(
            'module'=>'admin',
            'controller'=>':controller',
            'action'=>':action'
        )
    );      
    $router->addRoute('admin',$route);
    return $router;
}

Также вы можете добиться того же эффекта с помощью конфигурации application.ini:

resources.router.routes.admindev.type = "Zend_Controller_Router_Route"
resources.router.routes.admindev.route = "/admindev/:controller/:action/*"
resources.router.routes.admindev.defaults.module = "admin"

Другие советы и рекомендации по application.ini здесь

person Peter Todorov    schedule 09.11.2012
comment
Вот хорошо, нужно добавить по умолчанию в контроллер и действие по умолчанию. resources.router.routes.admindev.type = Zend_Controller_Router_Route resources.router.routes.admindev.route = /admindev/:controller/:action/* resources.router.routes.admindev.defaults.module = admin resources.router.routes. admindev.defaults.controller = index resources.router.routes.admindev.defaults.action = index Большое спасибо за помощь. - person user1482817; 09.11.2012