【问题标题】:Codeigntier : Post data not working in Codeigntier apisCodeigniter:发布数据在 Codeigniter api 中不起作用
【发布时间】:2019-06-26 14:09:20
【问题描述】:

我正在使用以下代码测试数据的发布,但发布数据始终为空我尝试使用邮递员进行测试但它不起作用,以下是我编写的测试代码但它总是进入 else 块,我尝试编写else if 也一样,但它不起作用

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。请告诉我如何排序它

我总是得到以下回应

【问题讨论】:

  • $lang= $this->input->post['lang']; 错误,正确的是$lang= $this->input->post('lang');

标签: php json codeigniter postman


【解决方案1】:

幸运的是,我正在开发一个 CI 项目 atm,因此测试它并没有花费太多精力。

首先,您为$lang = $this->input->post['lang']; 使用了错误的括号,所以它只是不开心,但不会抛出错误,不知道为什么。

你应该把它改成:

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

其次,我不确定这是否是故意的,但您实际上有 2 个不同的 $data 变量正在进行:

$this->data$data。所以echo json_encode($data, true); 只显示它包含的内容,也许你的意思是echo json_encode($this->data, true);

最后,上面的代码 sn-p 缺少最后一个右花括号,希望源代码中没有缺少它!

我希望这有助于解决您的问题 =)

【讨论】:

    【解决方案2】:

    尝试返回 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;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-08
      • 2018-09-04
      相关资源
      最近更新 更多