下面是我的Bootstrap
类中定义的一个函数。我必须错过Zend进行路由和调度的方式。我正在努力完成的工作很简单:对于因任何原因无法分派的任何请求/foo/bar/*
请尝试/index/foo/bar/
。我遇到的问题是当FooController
存在时,我得到Action "foo" does not exist
。基本上,isDispatchable
总是错误的。找不到控制器时,通过默认控制器路由zend请求
public function run() {
$front = Zend_Controller_Front::getInstance();
$request = $front->getRequest();
$dispatcher = $front->getDispatcher();
//$controller = $dispatcher->getControllerClass($request);
if (!$dispatcher->isDispatchable($request)) {
$route = new Zend_Controller_Router_Route(
':action/*',
array('controller' => 'index')
);
$router = $front->getRouter();
$router->addRoute('FallBack', $route);
}
$front->dispatch();
}
我不确定你指的是哪种'__call'方法?哪一堂课?更具体地说,这种情况下的控制器类不存在。我想引入一条新路线的原因是,我可以开始循环,并让路由器正确地捕获“:action /'后面的所有内容。然而,我意识到,这不能在bootstrap中完成,因为路由器和调度程序还没有准备好。它认为我可能需要创建一个插件或其他东西。 – 2010-04-28 19:36:37
@brett我已经更新了我的答案,希望我的回答能帮助你 – tawfekov 2010-04-29 12:24:25