Codeigniter不允许通过url在REST API post方法中发布数据。它显示的错误就像未知方法一样

时间:2017-04-20 07:14:58

标签: php codeigniter api codeigniter-restserver

我正在尝试通过网址发送数据,如

http://localhost/api/index.php/society/?date=20/04/2017&s_name=ssr

但它显示错误消息:

  

{" status":false,"错误":"未知方法"}

当我使用postmanadvance rest client应用程序进行测试时,它运行正常,数据正在发布和更新数据库。

网址: http://localhost/api/index.php/society

我的控制器....

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

require_once APPPATH . 'libraries/REST_Controller.php';

use Restserver\Libraries\REST_Controller;

class Society extends REST_Controller
{

    function __construct()
    {
        parent::__construct();
        $this->load->database(); 
        $this->load->model('Society_model');
    }

    public function index_get()
    {
        $data = $this->Society_model->society_get();
        $this->response($data);
    }

    public function index_post()
    {

        $data = array( 
            'date' =>$this->post('date'),
            'society_name' => $this->post('s_name'), 
            'society_group' => $this->post('g_name'),
            'contact_name' => $this->post('c_name'),
            'mobile_no' => $this->post('mobile'),
            'address' => $this->post('address'),
            'city' => $this->post('city'),
            'state' => $this->post('state'),
            'pincode' => $this->post('pincode'),
            'email_id' =>$this->post('email')
           ); 

         $this->Society_model->insert($data); 

         $this->set_response($data, REST_Controller::HTTP_CREATED);
    }
}

我的模特......

<?php

class Society_model extends CI_Model
{

    function __construct()
    {
        parent::__construct();  
    }

    public function society_get(){
        $this->db->select('*');
        $this->db->from('society_contact');
        $result = $this->db->get();
        return $result->result();
    }

    public function insert($data) 
    { 
         if ($this->db->insert("society_contact", $data)) 
         { 
            return true; 
         } 
    } 
}

2 个答案:

答案 0 :(得分:0)

社会是您的模型函数名称..通过索引名称来调用它 的 http://localhost/api/index.php/index/?date=20/04/2017&s_name=ssr

答案 1 :(得分:0)

您无法通过浏览器使用POST方法。您必须使用POSTMAN或其他REST客户端。浏览器中的URL只允许您获取信息。

请参阅此帖How do I manually fire HTTP POST requests with Firefox or Chrome?

您的网址http://localhost/api/index.php/society/?date=20/04/2017&s_name=ssr

它不正确,因为当您添加?something=something时,这是一个参数,如果您添加了 / ,这是该网址的独立部分。这就是为什么你得到 Unknow Method