drt5813 2016-09-13 07:17
浏览 53
已采纳

Codeigniter chriskacerguis-RESTAPI未知的访问方法

This is my Folder

Controller
  L>API
    L>ID
      L>Example.php
  L>Example.php

Both my example.php at API/example.php and API/ID/example.php were the same like this.

<?php

defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/core/REST_Controller.php';

/**
 * This is an example of a few basic user interaction methods you could use
 * all done with a hardcoded array
 *
 * @package         CodeIgniter
 * @subpackage      Rest Server
 * @category        Controller
 * @author          Phil Sturgeon, Chris Kacerguis
 * @license         MIT
 * @link            https://github.com/chriskacerguis/codeigniter-restserver
 */

class Example extends REST_Controller {
    public function index_get()
    {
        // index from a data store e.g. database
        $index = [
            ['id' => 1, 'name' => 'John', 'email' => 'john@example.com', 'fact' => 'Loves coding'],
            ['id' => 2, 'name' => 'Jim', 'email' => 'jim@example.com', 'fact' => 'Developed on CodeIgniter'],
            ['id' => 3, 'name' => 'Jane', 'email' => 'jane@example.com', 'fact' => 'Lives in the USA', ['hobbies' => ['guitar', 'cycling']]],
        ];

        $id = $this->get('id');
        $this->response($index, REST_Controller::HTTP_OK);
    }

    public function users_get(){
       echo"test";die();
    }
}

First I Adjust my config/routes.php like this

$route['API'] = "API";
$route['API/(.+)'] = "API/$1";

When I accessed base_url/API/Example/id/1 it responded the $index[1] that has name John.

Then I changed the routes.php into

$route["API/example"]="API/ID/example";
$route["API/example/(.+)"]="API/ID/example/(.+)";

Then I accessed I accessed base_url/API/Example/id/1 Which will go to API/ID/Example based on routes.php But Its responded

{
"status": false
"message": "Unknown method"
}

But if I accesed base_url/API/Example?id=1 It responded with $index[1]

How can I call api from API/ID/Example.php using base_url/API/example/id/1 and it will return $index[1]? not status:false unknown method

  • 写回答

1条回答 默认 最新

  • dongyuxin5353 2016-09-16 03:24
    关注

    I know the solution, Its because my routing is wrong

    $route['API/search_location/(.+)']="API/ID/example/index/$1";
    $route['API/search_location']="API/ID/example";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛