2010-11-24 8 views
2

У меня есть следующие контроллеры в своих модулях ..Zend рамки маршрута

UserController.php AdminUserController.php

Теперь маршрут для контроллера админ получает: модуль/админ-пользователь/(поведение по умолчанию)

Как сделать маршрут таким образом, все админи- будет изменено на:

/администратор/модуля/пользователя

ответ

2

Вы Виль Мне нужно написать собственный маршрут.

В коде:

$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); 

В файле .ini (я люблю держать мой отдельно от application.ini):

[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" 

Тогда вам придется самонастройки этого раздела приложения, чтобы включить маршруты;

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); 

} 

Этот маршрут будет соответствовать любому модулю запроса администратора// пользователя и отправить его в AdminUserController внутри модуля согласования.

Что-то вроде этого должно работать. Теперь, если все становится очень сложным, вам, вероятно, придется вглядываться в маршрутизатор регулярных выражений - но это так же просто, как я могу думать, что это необходимо.

+0

Возможно ли это сделать в application.ini с маршрутизатором регулярного выражения: P, поскольку мне нужно, чтобы все модули были маршрутизированы одинаково. – Chris 2010-11-25 17:43:04

Смежные вопросы