【问题标题】:How to read PUT and DELETE request using codeigniter framework?如何使用 codeigniter 框架读取 PUT 和 DELETE 请求?
【发布时间】:2018-12-20 07:35:43
【问题描述】:

我正在使用 codeigniter 框架创建一个 API 服务器,我想知道是否可以从任何客户端表单提交中读取 PUT 和 DELETE 请求?

用户指南对此没有过多解释。

【问题讨论】:

  • 使用这个$this->input->method();

标签: php codeigniter codeigniter-3


【解决方案1】:

可以尝试先检测方法类型,区分不同的情况:

switch($_SERVER['REQUEST_METHOD']){
   case 'GET':

      ...
      break;
   case 'POST':

      ...
      break;
   case 'PUT':

      ...
      break;
   case 'DELETE':

      ...
      break;
   default:
      echo "Unknown Request.";
}

【讨论】:

    【解决方案2】:

    <form method=""> 属性中的 HTML 标准 does not support PUT 并且浏览器也不支持它。浏览器通常不支持 HTML 表单中除 GET 和 POST 之外的方法。如果您放了除POSTGET 以外的任何其他内容,则应根据规范将其作为GET 请求发送。

    在表单中使用隐藏的method 字段并输入实际的HTTP。使用this library

    【讨论】:

      【解决方案3】:

      在 codeigniter 中,您可以使用以下命令获取 PUT 或 DELETE 的值: $this->input->raw_input_stream;并且您可以使用此方法将字符串 url 拆分为数组并将数组的值放入对象中 set_array() 您必须在模型中创建此方法以将每个值设置为正确的属性 您可以通过在您的项目中自定义它来使用此代码:

              $method = $this->input->server('REQUEST_METHOD');
          if($method === 'PUT')
          {
              $this->input->raw_input_stream;
      
              $input_data = $this->input->raw_input_stream;
              
              $exploded = array();
              parse_str($input_data, $exploded);
              $daman = new damancom_model();
              $daman->set_array($exploded);
              $daman->ID = $exploded["ID"];
              $daman->edit_damancom();
          }

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2019-07-14
      • 2017-03-10
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 2013-06-12
      • 1970-01-01
      相关资源
      最近更新 更多