Codeigntier:邮政数据不Codeigntier API的工作

时间:2019-02-02 00:52:58

标签: php json codeigniter postman

我用下面的代码数据,但总是空空的我用邮差试图测试后的数据的测试发布,但它没有工作,以下是测试代码,我写的,但它总是转到别的块,我试着写否则,但还是不行

class Api_home extends CI_Controller{
    function __construct(){
        parent::__construct();

        $this->load->model('Api_model','api');
        $this->load->helper('form');
            $data= array(
                'message'   => ' Something went wrong', 
                'status'    =>1, 
                'data'      =>'', 
            ); 
    }
        public function test(){

            $lang= $this->input->post['lang'];
            if($lang=="ar"){
                $this->data['message']= 'Arabic test';
            } 
                    //else if 
                   // else if($lang=="en")
            else{
                $this->data['message']= 'English test';
            }
            $data['status']= 1 ; 


            echo json_encode($data,true); 
                    die;
    }

即使我发布ar,它也始终会转换为en版本,即使我对发布的数据执行var_dump也会给我false。请告知我如何对其进行排序

我总是得到以下响应

2 个答案:

答案 0 :(得分:0)

幸运的是,我正在开发一个CI项目atm,因此无需花费太多精力进行测试。

首先,您在$lang = $this->input->post['lang'];上使用了错误的括号,因此它并不高兴,但不会引发错误,不知道为什么。

您应该将其更改为:

$lang = $this->input->post('lang');请注意弯曲的括号。

第二,我不确定它是否是有意的,但实际上您正在运行两个不同的$data变量:

$this->data$data。因此echo json_encode($data, true);仅显示其中包含的内容,也许您是说echo json_encode($this->data, true);

最后,上面的代码片段缺少最后一个大括号,希望从源头上也不会丢失!

我希望这可以帮助您解决问题=)

答案 1 :(得分:0)

尝试返回json_output:

 public function test(){
   $lang= $this->input->post['lang'];
            if($lang=="ar"){
                $message= 'Arabic test';
return parent::json_output(['code' => '1', 'message' => 'Succesful', 'data' => $message]);
            } 
                    //else if 
                   // else if($lang=="en")
            else{
                $message= 'English test';
return parent::json_output(['code' => '2', 'message' => 'Succesful', 'data' => $message]);
            }
            $data['status']= 1 ; 
  echo json_encode($data,true); 
                    die;
    }