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

CodeIgniter出现Using $this when not in object context错误求助

修复CodeIgniter视图中“Using $this when not in object context”错误

错误原因

视图文件create_loan.php里使用$this->load->view()时,当前代码不在CodeIgniter控制器的对象上下文里——也就是说这个视图没有通过框架的标准加载流程被调用,导致$this不是有效的CI控制器对象。

解决方案

1. 确保视图通过控制器加载

检查对应的控制器代码,必须通过控制器方法调用框架的视图加载函数来渲染create_loan.php,而不是直接访问视图文件或用原生PHP引入:

// 示例控制器方法(比如Loan控制器的create方法)
public function create() {
    // 正确加载视图
    $this->load->view('loan/create_loan');
}

访问时要通过控制器路由(比如http://your-domain/index.php/loan/create),不要直接访问application/views/loan/create_loan.php文件。

2. 检查视图的引用方式

如果create_loan.php是被其他视图或文件引用,必须用框架的视图加载方式,不能用原生的include/require:

// 错误写法
include(APPPATH . 'views/loan/create_loan.php');

// 正确写法
$this->load->view('loan/create_loan');

3. 对比正常运行的create_borrower代码

参照create_borrower对应的控制器和视图加载逻辑:

  • 确认create_loan的控制器方法结构和create_borrower一致
  • 检查视图文件的命名、路径拼写是否正确(注意大小写,Windows下不敏感但部署到Linux会出问题)

临时兜底方案(不推荐,仅作应急)

如果暂时无法调整加载流程,可以在create_loan.php开头添加判断,避免错误:

if (!isset($this) || !method_exists($this, 'load')) {
    // 重定向到控制器入口
    header('Location: ' . base_url('loan/create'));
    exit;
}

内容的提问来源于stack exchange,提问作者Angeli Bantugan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:07:07