PHP Zend Routing для языков, не соответствующих модулям
У меня есть следующий код в моей загрузке. Однако он работает хорошо с любым модулем, кроме стандартного, он перенаправляет на модуль по умолчанию. Как я могу заставить это работать с модулями кроме модуля по умолчанию?
protected function _initRoutes()
{
$this->bootstrap(array('FrontController'));
$router = $this->getResource('Frontcontroller')->getRouter();
$router->removeDefaultRoutes();
$language = new Zend_Controller_Router_Route(
':language', array('language' =>'en')
);
$module = new Zend_Controller_Router_Route_Module(
array(
'module' => 'default',
'controller'=> 'index',
'action' => 'index'
),
Zend_Controller_Front::getInstance()->getDispatcher(),
Zend_Controller_Front::getInstance()->getRequest()
);
$module->isAbstract(true);
$default = new Zend_Controller_Router_Route_Chain();
$default->chain($language);
$default->chain($module);
$router->addRoute('default', $default);
}
1 ответ
Решение
Вот и пример, как связать языковой маршрут с маршрутом по умолчанию, работающим с разными модулями.
Вы не должны указывать модуль по умолчанию в вашем маршруте $module.
$module = new Zend_Controller_Router_Route_Module(
array(),
Zend_Controller_Front::getInstance()->getDispatcher(),
Zend_Controller_Front::getInstance()->getRequest()
);