Restful API выдает неожиданный вывод в codeigniter - PullRequest
0 голосов
/ 04 июня 2019

контроллер:

<?php
    require APPPATH . '/libraries/REST_Controller.php';
    use Restserver\Libraries\REST_Controller;
    class User extends REST_Controller 
    {
        function __construct() 
        {
            parent::__construct();
            $this->load->database();
        }
        function country_state_get()
        {
            $this->db->select('id,name');
            $this->db->from('countries');
            $sql = $this->db->get();
            $data = $sql->result_array();
            foreach($data as $row)
            {
                $this->db->select('id,name');
                $this->db->from('states');
                $this->db->where('country_id',$row['id']);
                $sqls = $this->db->get();
                $data2 = $sqls->result_array();
            }
            $result= [
                "Country" => $data,
                "state" => $data2
            ];
            $this->response($result, 200);
        }
    }

неожиданный вывод:

{
"Country": [
    {
        "id": "1",
        "name": "Afghanistan"
    },
    {
        "id": "2",
        "name": "Albania"
    },
    {
        "id": "3",
        "name": "Algeria"
    }
]

}

ожидаемый вывод:

{
"Country": [
    {
        "id": "1",
        "name": "Afghanistan",
        "state": ["Badakhshan", "Badghis", "Baghlan"]
    },
    {
        "id": "2",
        "name": "Albania",
        "state": ["Berat", "Dibres", "Durres"]
    },
    {
        "id": "3",
        "name": "Algeria",
        "state": ["Adrar", "Ain Defla", "Ain Temouchent"]
    }
]

}

Я должен создать простой API для страны и штата, используя платформу codeigniter.Здесь я получаю неожиданный вывод, как я упоминал выше.когда я нажимаю URL на моем локальном сервере, он выбрасывает неожиданно, но мой ожидаемый результат отличается.Итак, как я могу это сделать?Пожалуйста, помогите мне.

Спасибо

1 Ответ

0 голосов
/ 04 июня 2019

Обновите функцию country_state_get, указав код ниже function

    function country_state_get()
     {
          $this->db->select('id,name');
          $this->db->from('countries');
          $sql = $this->db->get();
          $data = $sql->result_array();
          foreach($data as $key => $row)
          {
             $this->db->select('id,name');
             $this->db->from('states');
             $this->db->where('country_id',$row['id']);
             $sqls = $this->db->get();
             $data2 = $sqls->result_array();
             $data[$key]['state'] =  $data2;
          }

        $result= [ "Country" => $data ];
        $this->response($result, 200);
}
...