2010-05-04 50 views
2

我想開始使用Zend_Rest_Controller我的應用程序,並已在我的引導設置路由像這樣:使用Zend_Rest_Route與Zend_Navigation

protected function _initRestfulRoutes() 
{ 
    $front = Zend_Controller_Front::getInstance(); 
    $router = $front->getRouter(); 

    // Specifying all controllers as RESTful: 
    $restRoute = new Zend_Rest_Route($front); 
    $router->addRoute('default', $restRoute); 
} 

然而,在使用Zend_Navigation時,所有路由將默認爲索引操作。我的路由定義,像這樣:

<users> 
     <label>Users</label> 
     <controller>users</controller> 
     <action>index</action> 
     <route>default</route> 
     <pages> 
      <delete> 
       <label>Delete Me</label> 
       <controller>users</controller> 
       <action>delete</action> 
       <id>1</id> 
       <route>default</route> 
      </delete> 
     </pages> 
    </users> 

的刪除路徑解析爲http://myapp.com/users而不是http://myapp.com/users/1?_method=DELETE

任何想法是怎麼回事?謝謝。

+0

如果你有一個URI說... /?method = delete你沒有做REST。 – Gandalf 2010-05-04 19:00:28

+0

這裏有一個URL格式的引用:http://framework.zend.com/manual/en/zend.controller.router.html老實說,我不太瞭解ZF的REST imeplmentation,以瞭解我們應該如何區分郵寄,放入和刪除表單或網址。但感謝您花時間上學我的RESTfulness。 – 2010-05-04 21:36:10

回答

2

根據GET請求,Zend_Rest_Route不會路由到「deleteAction()」。爲了調用「deleteAction」,您需要在請求的主體中發送帶_method = DELETE的POST請求。