php-在客户端返回null值,但在服务器端获取数据

时间:2015-04-08 08:57:10

标签: php codeigniter soap

客户端可以获取值,如果我将查询代码放在服务器而不是模型中。这是我的代码:

  function player_item(){

       $CI =& get_instance();
       $CI->db->select('player_item, count(*) as total',false);
       $CI->db->from('rps'); 
       $CI->db->group_by('player_item');
       $query = $CI->db->get();

       $data= $query->result_array();
       return json_encode($data);
    }

当我改为MVC方法并尝试在客户端打印出值时,它返回null值。这是我的代码:

型号:

function get_player_item()
  {
      $this->db->select('player_item, count(*) as total');
      $this->db->from('rps'); 
      $this->db->group_by('player_item');
      $query = $this->db->get();
      $rows = array();
      foreach ($query->result_array() as $row)
       {
          $rows[] = $row;
        }
       return $rows;
}

服务器:

function player_item()

    {
           $CI =& get_instance();
           $CI->load->model("player");
           $data=$CI->player->get_player_item();
           return json_encode($data);
     }

客户端:

 $result = $this->nusoap_client ->call('player_item');
 $data['player'] = json_decode($result, true);
 var_dump($data['player'] );

我的代码有什么问题?我可以在服务器上获取print_r(json_encode($ data))时的值。string(112) "[{"player_item":"paper","total":"9"},{"player_item":"rock","total":"10"},{"player_item":"scissors","total":"8"}]"

1 个答案:

答案 0 :(得分:0)

由于您的脚本未生成任何实际输出,因此客户端将看不到任何内容。

你需要改变这个:

{
       $CI =& get_instance();
       $CI->load->model("player");
       $data=$this->player->get_player_item();
       return json_encode($data);
}

为:

{
       $CI =& get_instance();
       $CI->load->model("player");
       $data=$this->player->get_player_item();
       echo json_encode($data);
       ^^^^ Make your script output the json instead of returning it
}
相关问题