Codeigniter其余api路由问题

时间:2019-05-30 08:53:35

标签: php json api codeigniter-3

我已经创建了一个简单的rest api,但是当我在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";
        }
    }

route.php

$route['default_controller'] = 'user';
$route['404_override'] = '';
$route['translate_uri_dashes'] = TRUE;
$route['user_data'] = "user/user_data";
$route['country'] = "user/country";

2 个答案:

答案 0 :(得分:1)

您需要对代码进行2次更改,如下所示,

  1. 在用户控制器中更改方法签名, 从此函数country()到此函数country_get()

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

答案 1 :(得分:0)

如您所说,您正在呼叫

http://localhost/rest/user_data

尝试致电

http://localhost/rest/user/user_data

在您的情况下:它正在尝试调用User_data控制器,由于它不存在,因此给您一个错误。

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

http://localhost/rest/user_data

例如: http://localhost/rest/controller/controller_method

引用:https://www.codeigniter.com/user_guide/general/urls.html