Codeigniter RESTful API - HTTP / 1.1 400错误请求

时间:2014-01-15 13:32:32

标签: php mysql api codeigniter

我正在尝试从我的MySQL数据库中获取数据,因此我可以创建一个API,但我不断收到错误请求的“错误”。我的Db有一个包含id,名称和状态的表“类别”。

我的控制器(category.php - 我在“controllers”文件夹中创建了一个“api”文件夹,其中放置了category.php)

<?php

 require(APPPATH.'libraries/REST_Controller.php');

 class Category extends REST_Controller{

 public function index_get()  
 {  
  //IF CATEGORY NOT EXIST
  if(!$this->get('name'))
  {
    $this->response(NULL, 400);
  }

  //CHECK TO MODEL FUNCTION
  $category = $this->category_model->get_category($this->get('name'));

  //IF CATEGORY EXIST
  if($category)
  {
    $this->response($category, 200); // 200 being the HTTP response code
  }
}  

 public function index_put()  
 {  
  //
 }  

 public function index_post()  
 {  
 //
 }  

 public function index_delete()  
 {  
 //
 } 

}

?>

和我的模型(category_model.php)

<?php

class Category_model extends CI_Model{

function __construct() {
    parent::__construct();        
}

function get_category($name){
    $query = $this->db->get('category', array('name'=>$name));
    return $query->row_array();
}

}

?>

现在,当我输入http://localhost/projectfolder/ci/index.php/api/category/时 - 浏览器什么都没有显示,控制台也一样......

问题是什么?

4 个答案:

答案 0 :(得分:0)

尝试将所有代码放入if(!$ this-&gt; get('name'))条件。

答案 1 :(得分:0)

尝试使用加载category_model $这 - &GT;负载&GT;模型( “category_model”);

答案 2 :(得分:0)

好的,我有点自己解决了,但我不知道它是否正确,但它到目前为止是有效的。我所做的只是废弃模型,并在控制器中写道:

public function index_get()  
{ 
  $this->load->database();
  $sql = 'SELECT * FROM category';
  $query = $this->db->query($sql);
  $data = $query->result();

  $this->response($data, 200);
}

现在,显示所有数据!这可能会做得更好,但至少它可以工作......: - )

答案 3 :(得分:-1)

您可以尝试使用print_r()函数来检查是否从数据库中获取数据。