Codeigntier: данные Post не работают в Codeigntier apis - PullRequest
0 голосов
/ 02 февраля 2019

я использую следующий код для проверки отправки данных, но данные публикации всегда пустые, я пытался проверить с помощью почтальона, но это не сработало, ниже приведен тестовый код, который я написал, но он всегда идет в блок else, я пытался написатьиначе, если также, но это не сработало

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;
    }

, оно всегда переходит в en версию, даже если я публикую ar, если я делаю var_dump для опубликованных данных, это дает мне false.Посоветуйте, пожалуйста, как мне это отсортировать

я всегда получаю следующий ответ

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

попробуйте вернуть 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;
    }
0 голосов
/ 02 февраля 2019

К счастью, я работаю над атм проекта CI, поэтому не было слишком много усилий, чтобы проверить это.

Во-первых, вы использовали неправильные скобки для $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);

Наконец, во фрагменте кода выше отсутствует последняя заключительная фигурная скобка, надеюсь, его нет в источнике!

Я надеюсь, что это поможет решить вашу проблему =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...