Codeigniter:无法回显数据

时间:2011-12-05 20:09:12

标签: php codeigniter json

好的伙计,

我的一个功能是奇怪的。

public function getOutages($Site)
{
    // pull a json data dump of all outages 
    If(!$Site){
        echo '[{}]';
    }else{
        $this->load->database('default', TRUE);
        $this->db->where('Clear', '0');
        $this->db->where('FracID', $Site);
        $query = $this->db->get('vw_Outages');

        echo json_encode($query->result_array());
    }
}

直接接收时不会回显任何东西。通过启用分析器,它可以正常运行并输出数据。

public function getOutages($Site)
{
$this->output->enable_profiler(TRUE);
    // pull a json data dump of all outages 
    If(!$Site){
        echo '[{}]';
    }else{
        $this->load->database('default', TRUE);
        $this->db->where('Clear', '0');
        $this->db->where('FracID', $Site);
        $query = $this->db->get('vw_Outages');

        echo json_encode($query->result_array());
    }
}

对此的任何见解都会受到欢迎:D。

2 个答案:

答案 0 :(得分:7)

CodeIgniter有一个输出缓冲系统(它还允许它执行诸如缓存控制器输出,设置标头和收集视图输出之类的事情)。您通常不会从控制器方法echo。这样做:

public function mymethod() {
    $anobject = array();
    $output = json_encode($anobject);

    $this->output->set_content_type('application/json');
    $this->output->set_output($output);
}

请参阅CodeIgniter documentation for the Output class

答案 1 :(得分:0)

也许您已启用输出缓冲或压缩 - 这可能会导致此类问题。还要检查您尝试输出的变量是否为空。如果这没有帮助,请尝试使用视图来显示数据。