You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CodeIgniter加载模型时出现CI_Template未找到错误求助

解决Fatal error: Class 'CI_Template' not found的问题

看起来你遇到的核心问题是模板库没有被正确加载就直接调用了$this->template,和加载apotek_data模型本身关系不大,只是刚好在添加模型加载代码后触发了这个报错(可能之前代码里有其他隐式加载模板库的逻辑,现在构造函数执行顺序变化后暴露了问题)。

下面是具体的排查和修复步骤:

1. 先加载模板库再调用方法

CI框架里任何库(包括自定义/第三方模板库)都需要先加载才能通过$this->xxx调用。你需要把模板库的加载放在$this->template->xxx调用之前,调整构造函数顺序:

function __construct() {
    parent::__construct();
    // 优先加载模板库
    $this->load->library('template');
    // 再加载模型、数据库等资源
    $this->load->model('apotek_data');
    $this->load->database();
    // 最后调用模板库的方法
    $this->template->write_view('sidenavs', 'template/default_sidenavs', true);
    $this->template->write_view('navs', 'template/default_topnavs.php', true);
}

2. 确认模板库文件的正确性

检查你的模板库文件是否符合CI的命名规范:

  • 文件必须放在application/libraries/目录下
  • 文件名需为首字母大写的Template.php
  • 文件内的类名要和文件名对应(比如类名为Template,CI会自动映射为小写的$this->template)

如果你的模板库是带CI_前缀的核心扩展类,也要确保文件放在application/core/目录下,类名命名为CI_Template。

3. 可选:设置自动加载模板库

如果你的整个项目都需要用到模板库,可以在application/config/autoload.php里配置自动加载,避免在每个控制器里重复写加载代码:
找到$autoload['libraries']数组,添加'template':

$autoload['libraries'] = array('database', 'template');

4. 排查模型冲突(可能性较低)

如果调整后还是报错,可以暂时注释掉$this->load->model('apotek_data');,看看视图是否能正常显示。如果恢复正常,说明你的apotek_data模型里可能存在语法错误、类名冲突,或者重写了核心方法干扰了模板库的加载,这时候需要检查模型文件的代码细节。

按照以上步骤调整后,应该就能解决CI_Template找不到的错误,视图也能正常渲染了。

内容的提问来源于stack exchange,提问作者Ria W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:46:15