据我从documentation的了解,我正在尝试使用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()
答案 0 :(得分:2)
我承认,它的记载不充分。甚至听起来令人困惑。
但是您可以这样做:
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);
}
}