如何在Code Igniter中包含来自辅助函数的视图文件?

Joh*_*man 1 php codeigniter include

我正在尝试编写一个函数,其中包含一个名为header.php的文件,位于Code Igniter的帮助文件中.

// loads the header
function loadHeader() {
    require_once('../views/templates/header.php');
}
Run Code Online (Sandbox Code Playgroud)

但是,PHP发出错误

Message: require_once(../views/templates/header.php) [function.require-once]: failed to open stream: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后我尝试将地址设置为相对于正在调用的视图loadHeader().

// loads the header
function loadHeader() {
    require_once('templates/header.php');
}
Run Code Online (Sandbox Code Playgroud)

但是,此功能也会产生类似的错误.地址相对于什么?有没有方便的方法来找出PHP包含文件的相对路径?

lan*_*ons 6

有几种方法可以做到这一点:

标准视图载入中:

<?php
function loadHeader() {
    $CI =& get_instance();
    $CI->load->view('templates/header');
}
Run Code Online (Sandbox Code Playgroud)

绝对包括:

<?php
function loadHeader() {
    require_once(APPPATH.'views/templates/header.php');
}
Run Code Online (Sandbox Code Playgroud)

相对包括:

<?php
function loadHeader() {
    $dir = getcwd();
    chdir(dirname(__FILE__));
    require_once(realpath('../views/templates/header.php'));
    chdir($dir);
}
Run Code Online (Sandbox Code Playgroud)