Php Codeigniter rest api路由问题

Php Codeigniter rest api路由问题,php,json,api,codeigniter-3,Php,Json,Api,Codeigniter 3,我创建了一个简单的RESTAPI,但当我点击url中的路径时,它抛出一个错误,即{“status”:false,“error”:“Unknown method”}。我在想我的route.php文件中有一些问题。我怎样才能解决这个问题?请帮帮我 控制器:User.php <?php require APPPATH . '/libraries/REST_Controller.php'; use Restserver\Libraries\REST_Controller;

我创建了一个简单的RESTAPI,但当我点击url中的路径时,它抛出一个错误,即
{“status”:false,“error”:“Unknown method”}
。我在想我的
route.php
文件中有一些问题。我怎样才能解决这个问题?请帮帮我

控制器:User.php

<?php
    require APPPATH . '/libraries/REST_Controller.php';
    use Restserver\Libraries\REST_Controller;
    class User extends REST_Controller 
    {
        function __construct() 
        {
            parent::__construct();
            $this->load->database();
        }
        function user_data() 
        {
            $this->db->select('*');
            $this->db->from('tbl_books');
            $sql = $this->db->get();
            $result = $sql->result_array();
            $this->response($result, 200);
        }

        function country()
        {
            echo "hello";
        }
    }

正如你所说,你在打电话

试着打电话

在您的情况下:它正试图调用User_data controller,因为它不存在,所以它给了您一个错误

基本路径后的第一部分是控制器的名称,然后是控制器的方法

例如:


请参阅:

您需要对代码进行以下两项更改:

  • 更改用户控制器中的方法签名, 从这个函数country()到这个函数country\u get()

  • 更改国家/地区的路线,您需要在那里添加方法。 从这个$route['country']=“用户/国家”;到这个$route['country']['get]=“用户/国家”


  • 您试图呼叫的路由(Url)是什么?
    http://localhost/rest/user_data
    @5eeker但当我将
    用户数据
    替换为
    索引
    时,它工作正常。有什么问题@5eekerI认为这是因为您的扩展类,检查REST\u Controller类是否有该方法?我已经检查了
    REST\u Controller
    @5eeker
    $route['default_controller'] = 'user';
    $route['404_override'] = '';
    $route['translate_uri_dashes'] = TRUE;
    $route['user_data'] = "user/user_data";
    $route['country'] = "user/country";