代码点火器.使用_output函数处理输出不起作用



我正在尝试处理 CI 中的最终输出,因为我从文档中理解了它。

我的控制器:

class Test extends CI_Controller
{
    public function index(){
        echo 'Hello World!!';
    }
    public function _output($output)
    {
        if($this->input->is_ajax_request()) {
            echo $output;
        }else{
            echo '<h1>Header</h1>';
            echo $output;
        }
    }

}

预期输出:

<h1>Header</h1>
Hello World!!

我得到了什么:

Hello World!!
<h1>Header</h1>

发生的事情是显示 index(( 的输出,然后执行 _output(( $output 作为空字符串

我承认这是很糟糕的记录。听起来甚至令人困惑。

但你可以这样做:

public function index(){
    $this->output->set_output('Hello World!!');
}
public function _output($output)
{
    if($this->input->is_ajax_request()) {
        echo $output;
    }else{
        echo '<h1>Header</h1>';
        echo $output;
    }
}

我应该指出,我从未见过使用_output()方法。如果你更清楚你想要实现的目标,我可能会提供更好的选择。


可能更好的选择:

function index() {
    $data_array['some_db_result'] = $this->somemodel->get_results();
    $this->template->render('Some heading', 'view_page1', $data_array); 
}

模板模型:

function render($heading, $view_page, $data) {
    if ($this->input->is_ajax_request()) {
        echo "<h1>{$heading}</h1>";
        echo $this->load->view($view_page, $data, true);
    } else {
        $data['heading'] = $heading;
        $this->load->view('header', $data);
        $this->load->view($view_page, $data);
        $this->load->view('footer', $data);
    }
}

相关内容

  • 没有找到相关文章

最新更新