当前位置: 首页 > 知识库问答 >
问题:

CodeIgniter REST API调用不存在的方法

杨无尘
2023-03-14

使用Phil Sturgeon的Codeigniter REST服务器,我建立了一个基本的REST服务器来与主干应用程序交互。问题在于,每当应用程序尝试向适当的URI发出删除请求时(例如,api/object/7,其中7是有问题的ID号),REST都会返回404 Not Found错误。一点挖掘表明,它试图到达控制器中不存在的7_delete,而不是调用它应该调用的index_delete。

我已经检查了请求,它们正在路由到正确的URL;我还检查过,没有设置会干扰的自定义路由,也没有。建议?

编辑:更多细节,骨干路由设置如下:

urlRoot: 'api/objective/',

CI中的目标控制器是这样设置的:

class Objective extends REST_Controller {

  /**
   *  Respond to a POST request;
   *  - If given an ID, update an existing record
   *  - If given no ID, create a new record
   */
  public function index_post() {
    // code here...
  }

  /**
   *  Delete an existing record from a passed URL
   */
  public function index_delete($id) {
    // Code here...
  }

  /**
   *  Get a single record
   */
  public function index_get($id) {
    // Code here...
  }

  /**
   *  Get the full objectives list
   */
  public function index_get() {
    // Code here...
  }
}

这与原始示例文件中提供的示例非常接近。但是,CI路由没有设置任何内容。

共有1个答案

苍德寿
2023-03-14

也许它容易当你使用url像这样http://example.com/api/objective/deletecontent/id/7

    public function deletecontent_get() {
        if(!$this->get('id')) {$this->response(null,400)}
          $run = $this->some_model->delete_content_by_id($this->get('id));
          if($run) $this->response(true,200);
          else $this->response(null,304);
    }
 类似资料:
  • 问题内容: 我有一个用@Transactional注释的方法。我从Oracle数据库检索一个对象,更改一个字段,然后从该方法返回。我忘了保存对象,但是发现无论如何都会更新数据库。 applicationContext 我的方法 我的问题是为什么MyObject会持久保存到数据库? 问题答案: 因为hibernate将自动检测对持久实体所做的更改并相应地更新数据库。hibernate参考手册的第11

  • 问题内容: 我有用户将在命令行/终端Java程序上输入的命令列表(i,h,t等)。我想存储命令/方法对的哈希: 这样我就可以得到类似以下的代码: 这可能吗?如果没有,那么简单的方法是什么? 问题答案: 使用Java 8+和Lambda表达式 使用lambda(可在Java 8+中使用)进行以下操作: 在这种情况下,我很懒惰并重用了该接口,但是也可以使用我在答案的Java 7版本中发明的-。 此外,

  • 问题内容: 我正在尝试使用自定义方案从网页打开我的应用程序。该应用已打开,但未调用以下方法: 我的样子如下: 该项目是使用Xcode 11.1创建的,我正在iOS 13上进行测试。 问题答案: 在您的场景委托中实施。 如果该网址启动了您的应用,则您将获得该网址,它位于中。

  • 我需要一个简单的Java服务,它在系统启动时启动,并使用共享库与一些使用POSIX线程的功能。在实现JNI接口时,我遇到了一个问题,它不允许我从本地代码调用Java方法。GetMethodID()返回not NULL,所以我认为它做得很好。也没有任何可疑的错误可以帮助。所以我在log中添加了很多输出,并为此准备了一个简单的java测试。(下面列出了所有代码,但是project也可以在github的

  • 我试图使用JDA编写一个discord bot,虽然我可以很容易地获得bot的存在,但我无法获得选定用户的存在。一个用例可能是用户输入类似的命令,然后机器人发送消息告诉用户他们正在玩什么游戏。据我所知,机器人不能在没有用户在场的情况下获得用户的游戏活动,我也看不到这样做的方法。如果我在文档中遗漏了它,请链接方法/类。

  • vue3 其他组件调用defineExpose定义的方法,提示formref不存在?我想调用其他组件的重置表单的操作 提示不存在