2014-08-27 4 views
0

У меня есть модуль admin. Обычно в ZF создается маршрут для этого модуля под его именем, но я не хочу этого поведения.Изменить маршрут модуля в Zend Framework

Я хотел бы получить доступ к модулю admin под другим маршрутом, например totallyNotAdminPanel, и я хочу, чтобы он был ТОЛЬКО возможным путем доступа к этому модулю. Но я хотел бы, чтобы помощник URL-адреса мог указывать на этот модуль, когда я звоните $this->url(['module'=>'admin']);


Вывод:

  • admin модуль должен быть доступен только по totallyNotAdminPanel маршруту
  • URL-адрес помощника должен указывать на totallyNotAdminPanel маршрут, хотя передается ['module' => 'admin'].

Есть ли способ достичь этого в ZF1?

ответ

2

Я думаю, вы могли бы использовать для этого специальный маршрут.

Я хотел бы сделать это так:

  1. Создать пользовательский маршрут и инициализировать его в начальной загрузке класса. например

    public function _initRoutes() { 
        $router = $this->_front->getRouter(); 
        $router->addRoute(
         'admin-panel', 
         new Zend_Controller_Router_Route(
          'totallyNotAdminPanel/:controller/:action/*', 
          ['module' => 'admin'] 
         ) 
        ); 
    } 
    
  2. В представлении используйте специальный url для создания ссылок, например.

    $this->url(['module'=>'admin', 'controller'=>'users', 'action'=>'list'], 'admin-panel'); 
    

который даст вам выход, как:/totallyNotAdminPanel/пользователей/список

Удачи :)

+0

Спасибо за ваш ответ! К сожалению, это не работает должным образом. Когда я связываюсь с модулем по умолчанию из модуля admin с измененным маршрутом, я получаю url, как это: '/ notAdminPanel/home/index/module/default' – Skysplit

+0

Я обошел проблему, добавив маршрут« по умолчанию »в контроллер. Благодарим за помощь! :) – Skysplit

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