下面是我的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