Zend framework 在Zend中有一个默认控制器
我在Zend Framework 1.11(site.com/module/controller/action)中有一个基于模块的ArhitArchitecture 我已将我的站点设置为具有默认模块,因此,如果我将Zend framework 在Zend中有一个默认控制器,zend-framework,module,routing,Zend Framework,Module,Routing,我在Zend Framework 1.11(site.com/module/controller/action)中有一个基于模块的ArhitArchitecture 我已将我的站点设置为具有默认模块,因此,如果我将站点模块作为默认模块,并且您转到site.com/something1/something2,它实际上会将您带到site.com/site/something1/something2 我想进一步实现同样的事情1级:假设你去site.com/something,它应该带你去site.co
站点
模块作为默认模块,并且您转到site.com/something1/something2
,它实际上会将您带到site.com/site/something1/something2
我想进一步实现同样的事情1级:假设你去site.com/something
,它应该带你去site.com/site/index/something
。我说的不是重定向,只是重新路由
这样的事情可能吗?如果我理解正确,这是可能的,下面是一个示例,您可以将其放入引导程序中:
protected function _initControllerDefaults()
{
$this->bootstrap('frontcontroller');
$front = Zend_Controller_Front::getInstance();
// set default action in controllers to "something" instead of index
$front->setDefaultAction('something');
// You can also override the default controller from "index" to something else
$front->setDefaultControllerName('default');
}
如果您需要根据访问的URL将默认操作名称设置为动态,那么我认为您正在寻找自定义路由。在这种情况下,请尝试:
protected function _initRoutes()
{
$router = Zend_Controller_Front::getInstance()->getRouter();
// Custom route:
// - Matches : site.com/foo or site.com/foo/
// - Routes to: site.com/site/index/foo
$route = new Zend_Controller_Router_Route_Regex(
'^(\w+)\/?$',
array(
'module' => 'site',
'controller' => 'index',
),
array(1 => 'action')
);
$router->addRoute('actions', $route);
}
伟大的路线正是我所需要的。谢谢