Php Codeigniter RESTful服务路由

Php Codeigniter RESTful服务路由,php,rest,codeigniter,Php,Rest,Codeigniter,我正在尝试将RESTful服务集成到我的Codeigniter应用程序中。我正在使用这个库和来自的教程 然而,对于如何实现路由,我有点困惑。本教程提到使用完整的url,但我想做如下操作: 我的控制器 类AdminLogin\u WS扩展REST\u控制器{ public function __construct() { parent::__construct(); $this->load->model('AccountModel'); } publi

我正在尝试将RESTful服务集成到我的Codeigniter应用程序中。我正在使用这个库和来自的教程

然而,对于如何实现路由,我有点困惑。本教程提到使用完整的url,但我想做如下操作:

我的控制器

类AdminLogin\u WS扩展REST\u控制器{

public function __construct() {        
    parent::__construct();
    $this->load->model('AccountModel');
}
public function login_get(){
    $this->response(json_encode(null));
}

public function login_post(){
    $username = $this->post('username');
    $this->response(json_encode($username));
}
}

我的路线


$route['AdminLogin\u WS/Login']['post']='AdminLogin\u WS/Login\u post' 使用聊天室中的信息更新

使用
login\u get()
login\u post()
然后向
AdminLogin\u WS/login
发出post请求是正确的做法,并且调用了
login\u post()
,只是有些混乱,因为帖子使用海报使用的代码返回与GET相同的响应


原始答案

我会将此作为评论发布,但没有代表这样做


您所说的“仅当我创建一个名为
login\u get()
的控制器函数时,它才起作用”是什么意思?在我看来,你是在给你的路线发送GET而不是POST。您能否提供一些有关如何测试的信息,以查看是否可以发布并访问您的
登录\u POST()
?您是否尝试过下载Postman()和sending in a POST之类的工具来帮助消除您没有正确发送POST的可能性?

您可以分别使用
\u POST()
\u get()
指定函数是POST还是get

对于您的路由,我认为您的路由错误。主路线和备用路线之间应存在差异。你应该吃点类似的东西

$route['method/param1'] = 'controller/method/param1';

我用的是邮递员。如果我没有创建login\u get()并且只有login\u post(),我上面显示的路由不起作用,但是如果您发送帖子并且定义了一个
login\u get
,则会调用您的
login\u post()
?如果是这样的话,那听起来很奇怪。我从来没有使用过你正在使用的库,所以我不能说它肯定不应该这样工作,但我不期望它。您可能需要发布您的确切代码以从熟悉图书馆的人那里获得更多帮助(我不是),或者可能考虑在他们的问题页面上提出问题。这很奇怪。它用post方法不断地说{“status”:false,“error”:“Unknown method”}。因此,对于后路线I;我将使用AdminLogin\u WS/login\u post,这是您在发布到
AdminLogin\u WS/login\u post
时出现的错误?我以为你的路线是
AdminLogin\u WS/login
?如果你发布到
AdminLogin\u WS/login
,它会进入你的
login\u POST
功能吗?我正在发布到AdminLogin\u WS/login\u POST。如果我把它放在我的路线上,它会说未知方法。如果我删除_post,将触发名为login_get的函数
$route['method/param1'] = 'controller/method/param1';