我设法在我的Codeigniter应用程序中设置RESTful API。现在我想从我的MySQL数据库中获取一些数据,所以在我的Codeigniter模型文件夹中,我创建了一个名为category_model.php的模型:
<?php
Class category_model extends CI_Model {
var $table_name = 'category';
function get_all_categories()
{
$this->db->select('*');
$this->db->from($this->table_name);
return $this->db->get();
}
}
?>
然后在Codeigniter controller-folder中创建了一个category.php文件:
<?php
include(APPPATH.'libraries/REST_Controller.php');
class Category extends REST_Controller {
function __construct()
{
parent::__construct();
$this->load->model('category_model');
}
function category_get()
{
$data = $this->category_model->get_all_categories();
$this->response($data);
}
}
?>
现在,当我输入http://localhost/myproejcts/ci/index.php/category/category
时 - 我收到错误{"status":false,"error":"Unknown method."}
??
问题是什么?
[更新] =设置function index_post()
答案 0 :(得分:4)
取决于您对控制器的HTTP请求&#34;类别&#34;它会调用相关的方法:
public function index_get()
{
echo "GET_request";
}
public function index_post()
{
echo "POST_request";
}
public function index_put()
{
echo "PUT_request";
}
public function index_patch()
{
echo "PATCH_request";
}
public function index_delete()
{
echo "DELETE_request";
}
因此,请将您的方法重命名为&#39; index_get&#39;
答案 1 :(得分:3)
我认为你的问题是控制器的名称与方法的名称相同,试着做一个测试:
如果控制器的名称是:
class Test extends CI_Controller{
//your method name is different from the name of controller class
public function testget_get(){
echo $this->response(array('test'=> 'test'), 200);
}
}
我在hmvc结构上遇到过这个问题。
答案 2 :(得分:0)
提及您要从数据库中获取的详细信息,并在 / restapi / application / config / database 文件中的数据库文件中输入正确的名称并运行代码。
由于数据库名称不正确而发生此错误
**<?php
Class category_model extends CI_Model {
var $table_name = 'category';
function get_all_categories()
{
$this->db->select('name, email');
$this->db->from($this->table_name);
return $this->db->get();
}
}
?>**
答案 3 :(得分:0)
请更改班级名称,以大写字母开头,并确保文件名也以大写字母开头
<?php
Class Category_model extends CI_Model {
var $table_name = 'category';
function get_all_categories()
{
$this->db->select('*');
$this->db->from($this->table_name);
return $this->db->get();
}
}
?>
答案 4 :(得分:0)
只需在控制器顶部的几行下写上
。if (!defined('BASEPATH')) exit('No direct script access allowed');
use Restserver\Libraries\REST_Controller;
require APPPATH . 'libraries/REST_Controller.php';
require APPPATH . 'libraries/Format.php';
答案 5 :(得分:0)
在我的情况下,问题出在http
上,如果您的服务器是https
,应该是https
。