我有一个扩展 Zend_Rest_Controller 的 REST 设置。当我调用某个资源时,通过 HTTP GET 方法它尝试执行indexAction()
不getAction()
当我$this->_request->getActionName()
在preDispatch()
它产生的index
时候使用它记录动作名称时,它应该映射到get
我有一个扩展 Zend_Rest_Controller 的 REST 设置。当我调用某个资源时,通过 HTTP GET 方法它尝试执行indexAction()
不getAction()
当我$this->_request->getActionName()
在preDispatch()
它产生的index
时候使用它记录动作名称时,它应该映射到get
注意:如果 Zend_Rest_Route 不能匹配一个有效的模块、控制器或动作,它将返回 FALSE 并且路由器将尝试使用路由器中的下一个路由进行匹配。
所以看起来你的控制器没有getAction()
功能,或者你使用了错误的控制器。
这是预期的行为。GET 返回实体的单个实例,例如 myhost.com/book/1 将返回 ID 为 1 的书籍。相反,myhost.com/book 将返回所有可用书籍的列表。
只需尝试以下操作:
curl -v -H "Accept: application/json" -X GET http://myhost.com/book/1
对比
curl -v -H "Accept: application/json" -X GET http://myhost.com/book
第一个调用将委托给 getAction(),第二个调用将委托给 indexAction()