我正在使用Zend Framework版本1.12.16。我创建了两个模块,即用户和管理员。我在application.ini中启用了用户模块作为我的默认模块:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resouces.modules[]=
resources.frontController.defaultModule = "user"
因此,每当用户在网址中输入网站名称时,他就会被自动用于在用户模块中对indexController
的操作进行索引。同样,我希望每当用户在http://example.local/admin中键入时,用户都可以将loginController
管理模块的操作编入索引。我可以使用application.ini中的某些设置来实现吗?
答案 0 :(得分:0)
Zend只允许默认模块/控制器/操作的单一定义。在幕后,这将为Zend的路由系统创建一个默认路由。路由是您的问题的关键。为了匹配你的情况,你当然可以做一些动态/占位符/任何矫枉过正,但实际上你只需要一个简单的静态路由。这看起来像这样:
$route = new Zend_Controller_Router_Route_Static(
'admin',
array('module' => 'admin', 'controller' => 'login', 'action' => 'index')
);
$router->addRoute('admin', $route);
答案 1 :(得分:0)
谢谢Jossif !!我完全忘了这个选项。在Bootstrap.php类中添加以下方法解决了我的问题。
protected function _initRoutes()
{
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route_Static(
'admin',
array(
'module' => 'admin',
'controller' => 'login',
'action' => 'index'
)
);
$router->addRoute('admin', $route);
}