2010-05-04 7 views
2

Je veux commencer à utiliser Zend_Rest_Controller pour mon application, et ont mis en place le routage comme si dans mon bootstrap:En utilisant Zend_Rest_Route avec 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); 
} 

Cependant, lors de l'utilisation Zend_Navigation, tous les itinéraires par défaut à l'action de l'index. Mes itinéraires sont définis comme ceci:

<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> 

L'itinéraire de suppression Adopte la résolution http://myapp.com/users au lieu de http://myapp.com/users/1?_method=DELETE

Toute idée de ce qui se passe? Merci.

+0

Si vous avez un URI qui dit ... /? Method = delete vous ne faites pas REST. – Gandalf

+0

Il y a une référence à ce format d'URL ici: http://framework.zend.com/manual/fr/zend.controller.router.html Honnêtement, je ne connais pas assez l'implication de ZF pour comprendre comment nous sommes supposés différencier entre publier, mettre et supprimer dans les formulaires ou les URL. Mais merci d'avoir pris le temps de me scolariser sur RESTfulness. –

Répondre

2

Zend_Rest_Route ne redirige pas vers "deleteAction()" en fonction d'une requête GET. Pour invoquer "deleteAction", vous devez envoyer une requête POST avec _method = DELETE dans le corps de la requête.

Questions connexes