如您所知,Zend Framework(v1.10)使用基於斜槓分隔參數的路由,例如。基於標準PHP查詢字符串的路由
[server]/controllerName/actionName/param1/value1/param2/value2/
Queston是:如何強制Zend框架,使用標準的PHP查詢字符串以檢索動作和控制器的名稱,在這種情況下:
[server]?controller=controllerName&action=actionName¶m1=value1¶m2=value2
我已經試過:
protected function _initRequest()
{
// Ensure the front controller is initialized
$this->bootstrap('FrontController');
// Retrieve the front controller from the bootstrap registry
$front = $this->getResource('FrontController');
$request = new Zend_Controller_Request_Http();
$request->setControllerName($_GET['controller']);
$request->setActionName($_GET['action']);
$front->setRequest($request);
// Ensure the request is stored in the bootstrap registry
return $request;
}
但它不適合我。
它幾乎工作,我不得不從Zend_Controller_Router_Rewrite擴展My_Router或實現其餘的接口方法。第一種解決方案更快;)現在它工作得很好。謝謝! – singles 2010-03-06 15:14:24
根據手冊,你應該只需要實現該方法。該API似乎說不然,所以我很困惑。你也可以嘗試擴展Zend_Controller_Router_Abstract而不是Zend_Controller_Router_Rewrite。他們在手冊中需要一個更好的例子。 – smack0007 2010-03-06 16:13:35