如何调用公共文件,例如头部文件?
我有一个头部文件和尾部文件,如何在各个页面调用?目前有一种解决方案是
我把头部所要查询数据库的数据写在model里,然后在每个页面的控制器里加载这个model,再在各个视图页里用 $this->load->view('header')引用这个头部视图,并显示相关数据。尾部文件类似,但前提是,我必须在每个页面加载这个model或者配置它自动在各个页面加载
现在的问题是,如果我把header头部文件单独作为一个文件访问 如 http://localhost/index.php/header/index ,是可以正常运行的,
我如何通过在各个视图文件里通过 直接引用的方法加载头部?当然直接include等引用进来是不行滴。
不知道有没有别的办法可以做到哦。。
$this->load->view('header');
$this->load->view('main');
$this->load->view('footer'); jeongee 发表于 2011-9-27 16:07 static/image/common/back.gif
$this->load->view('header');
$this->load->view('main');
$this->load->view('footer');
header里的逻辑部份呢,我要怎么引用 ?
请给一个具体的,谢谢 那你要的是HMVC了:移步:http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=1319&page=13#lastpost 不太懂哦,学习学习! 本帖最后由 yuzhigang5460 于 2011-9-27 22:20 编辑
如果只是想解决避免每个控制器都要加载model的问题,可以在config里的autoload里配置一下这个model,
如果不仅仅是加载model,还有一些其他的逻辑操作,你可以通过继承控制器的方法加以解决:
class MY_Controller extends CI_Controller
{
protected$_data = array();
function __construct()
{
parent::__construct();
$this->_pre_contruct();
}
protected function _pre_construct()
{
$this->load->model('my_model');
//其他的操作,获取header所需的数据
$this->_data['header'] = $heaer;
}
}
其他控制器继承于MY_Control, 都可以获得header所需的数据,如果稍有不同,可以覆盖_pre_control()函数即可。
class Blog extends MY_Controller
{
function __construct()
{
parent::__construct();
}
protected function _pre_control()
{
//覆盖父类的操作,可以改变header所需的数据,不写该函数即自动获得父类的header数据,$this->_data['header'];
}
public function index()
{
$this->_data['body_data'] = $body_data;
$this->load->view('myview', $this->_data);
}
}
yuzhigang5460 发表于 2011-9-27 22:12 static/image/common/back.gif
如果只是想解决避免每个控制器都要加载model的问题,可以在config里的autoload里配置一下这个model,
如果 ...
谢谢,我明白了。
页:
[1]