客户端可以获取值,如果我将查询代码放在服务器而不是模型中。这是我的代码:
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"}]"
答案 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
}