Zend Framework 1.12.16 将用户重定向到特定操作
Zend Framework 1.12.16 redirect user to specific action
我使用的是 Zend Framework 版本 1.12.16。我创建了两个模块,即用户和管理员。我已通过在 application.ini:
中启用它来将用户模块设置为我的默认模块
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resouces.modules[]=
resources.frontController.defaultModule = "user"
因此,每当用户使用 url 中的站点名称时,他都会自动进入用户模块中 indexController
的索引操作。同样,只要用户输入 http://example.local/admin,我希望用户被带到管理模块 loginController
的索引操作。我可以使用 application.ini 中的一些设置来实现吗?
Zend 只允许默认的单个定义 module/controller/action。在幕后,这会在 Zend 的路由系统中为您创建一个默认路由。路由是您问题的关键。为了匹配您的情况,您当然可以做一些 dynamic/placeholder/whatever 矫枉过正,但实际上您只需要一个简单的静态路由。这看起来像这样:
$route = new Zend_Controller_Router_Route_Static(
'admin',
array('module' => 'admin', 'controller' => 'login', 'action' => 'index')
);
$router->addRoute('admin', $route);
谢谢约瑟夫!!我完全忘记了这个选项。在 Bootstrap.php class 中添加以下方法解决了我的问题。
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);
}
我使用的是 Zend Framework 版本 1.12.16。我创建了两个模块,即用户和管理员。我已通过在 application.ini:
中启用它来将用户模块设置为我的默认模块resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resouces.modules[]=
resources.frontController.defaultModule = "user"
因此,每当用户使用 url 中的站点名称时,他都会自动进入用户模块中 indexController
的索引操作。同样,只要用户输入 http://example.local/admin,我希望用户被带到管理模块 loginController
的索引操作。我可以使用 application.ini 中的一些设置来实现吗?
Zend 只允许默认的单个定义 module/controller/action。在幕后,这会在 Zend 的路由系统中为您创建一个默认路由。路由是您问题的关键。为了匹配您的情况,您当然可以做一些 dynamic/placeholder/whatever 矫枉过正,但实际上您只需要一个简单的静态路由。这看起来像这样:
$route = new Zend_Controller_Router_Route_Static(
'admin',
array('module' => 'admin', 'controller' => 'login', 'action' => 'index')
);
$router->addRoute('admin', $route);
谢谢约瑟夫!!我完全忘记了这个选项。在 Bootstrap.php class 中添加以下方法解决了我的问题。
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);
}