我正在尝试从我的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/
时 - 浏览器什么都没有显示,控制台也一样......
问题是什么?
答案 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()函数来检查是否从数据库中获取数据。