我正在尝试处理 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);
}
}