使用Phil Sturgeon的Codeigniter REST SERVER,我已经设置了一个基本的REST服务器来与Backbone应用程序进行交互。问题是,只要applcation尝试向正确的URI发出DELETE请求(例如,api / object / 7,其中7是相关的ID号),REST就会返回404 Not Found错误。一点挖掘显示它试图在控制器内到达nonxistint 7_delete而不是调用index_delete。
我已检查过请求,并且他们正在路由到正确的网址;我还检查过没有设置的自定义路由会干扰而且没有。建议?
编辑:有关更多详细信息,Backbone路由设置如下:
urlRoot: 'api/objective/',
CI中的Objective控制器设置如下:
class Objective extends REST_Controller {
/**
* Respond to a POST request;
* - If given an ID, update an existing record
* - If given no ID, create a new record
*/
public function index_post() {
// code here...
}
/**
* Delete an existing record from a passed URL
*/
public function index_delete($id) {
// Code here...
}
/**
* Get a single record
*/
public function index_get($id) {
// Code here...
}
/**
* Get the full objectives list
*/
public function index_get() {
// Code here...
}
}
这与原始示例文件中提供的示例很接近。 CI路由没有任何设置。
答案 0 :(得分:-1)
使用像http://example.com/api/objective/deletecontent/id/7
这样的网址时可能很容易 public function deletecontent_get() {
if(!$this->get('id')) {$this->response(null,400)}
$run = $this->some_model->delete_content_by_id($this->get('id));
if($run) $this->response(true,200);
else $this->response(null,304);
}