一尘不染

CodeIgniter中的页眉和页脚

php

我真的不喜欢在每个控制器中编写代码:

    $this->load->view('templates/header');
    $this->load->view('body');
    $this->load->view('templates/footer');

是否可以这样做,将自动包含页眉和页脚,如果需要更改它,我们也可以这样做吗?你怎么处理?还是您认为这不是问题?谢谢。


阅读 301

收藏
2020-05-26

共1个答案

一尘不染

这是我的工作:

<?php

/**
 * /application/core/MY_Loader.php
 *
 */
class MY_Loader extends CI_Loader {
    public function template($template_name, $vars = array(), $return = FALSE)
    {
        $content  = $this->view('templates/header', $vars, $return);
        $content .= $this->view($template_name, $vars, $return);
        $content .= $this->view('templates/footer', $vars, $return);

        if ($return)
        {
            return $content;
        }
    }
}

对于CI 3.x:

class MY_Loader extends CI_Loader {
    public function template($template_name, $vars = array(), $return = FALSE)
    {
        if($return):
        $content  = $this->view('templates/header', $vars, $return);
        $content .= $this->view($template_name, $vars, $return);
        $content .= $this->view('templates/footer', $vars, $return);

        return $content;
    else:
        $this->view('templates/header', $vars);
        $this->view($template_name, $vars);
        $this->view('templates/footer', $vars);
    endif;
    }
}

然后,在您的控制器中,这就是您要做的一切:

<?php
$this->load->template('body');
2020-05-26