【发布时间】:2017-07-05 00:30:38
【问题描述】:
我正在尝试在 CodeIgniter 中创建类似于以下描述的页眉/正文/页脚模板: Header and footer in CodeIgniter
我的代码存储在\application\core\MY_loader.php:
<?php
class MY_Loader extends CI_Loader {
public function load_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;
}
}
?>
我的控制器代码存储在 application\controllers\managers.php:
class Managers extends CI_Controller {
function login()
{
$this -> load -> load_template('managers/login');
}
}
当我浏览到 BASE_URL/managers/login 时,我收到以下错误:
调用未定义的方法 CI_Loader::load_template()
我对此的解释是,系统没有使用 MY_Loader 扩展 CI_Loader,而是完全忽略了 MY_Loader。当我在 XAMPP 下运行它时,此设置在我的站点本地安装上运行,但在我将站点移植到 Web 主机后它停止工作。我不记得更改 CI 配置(尽管我可能有),也不知道这是否是由于新主机的配置问题造成的。
我正在寻找有关可能阻止 MY_loader 扩展 CI_loader 的任何指导。我还没有找到任何类似的报告;我发现的与 MY_loader 相关的所有其他问题都假定覆盖已经起作用。
【问题讨论】:
-
将文件另存为
MY_Loader.php。 -
该文件已使用该名称保存。
-
抱歉...我错过了“Loader”的大写字母。你是对的。
标签: php codeigniter codeigniter-3