库输入类不能在php codeigniter中工作

时间:2018-06-13 10:24:12

标签: php codeigniter codeigniter-3 codeigniter-restserver

我正在使用codeigniter REST API。在我的API调用中,我试图从$this->input->get('id')获取值,但不会从get中获取任何值。

public function data_get($id_param = NULL){ 

    $id = $this->input->get('id');

    if($id===NULL){
        $id = $id_param;
    }
    if ($id === NULL)
    {
        $data = $this->Make_model->read($id);
        if ($data)
        {

            $this->response($data, REST_Controller::HTTP_OK); 
        }
        else
        {
            $this->response([
                'status' => FALSE,
                'error' => 'No record found'
            ], REST_Controller::HTTP_NOT_FOUND); 
        }
    }
    $data = $this->Make_model->read($id);
    if ($data)
    {
        $this->set_response($data, REST_Controller::HTTP_OK);   
    }
    else
    {
        $this->set_response([
            'status' => FALSE,
            'error' => 'Record could not be found'
        ], REST_Controller::HTTP_NOT_FOUND); 
    }
 }

在上面的代码中,$ id不会返回任何值。

2 个答案:

答案 0 :(得分:0)

请将您的代码从$id = $this->input->get('id');更改为$id = $this->get('id'); 这应该可以解决你的问题。

答案 1 :(得分:0)

希望这会对您有所帮助:

使用$this->input->get('id')$this->get('id')两者都可以正常工作

您的data_get方法应该是这样的:

public function data_get($id_param = NULL)
{ 

    $id = ! empty($id_param) ? $id_param : $this->input->get('id');
    /* 
     u can also use this
     $id = ! empty($id_param) ? $id_param : $this->get('id');
    */
    if ($id)
    {
        $data = $this->Make_model->read($id);
        if ($data)
        {

            $this->response($data, REST_Controller::HTTP_OK); 
        }
        else
        {
            $this->response([
                'status' => FALSE,
                'error' => 'No record found'
            ], REST_Controller::HTTP_NOT_FOUND); 
        }
    }
    else
    {
        $this->response([
            'status' => FALSE,
            'error' => 'No id is found'
        ], REST_Controller::HTTP_NOT_FOUND); 
    }
}