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

Codeigniter 3报错Undefined Property $Ngetest,模型调用失败求助

解决CodeIgniter 3中调用模型时的"Undefined Property $Ngetest"错误

错误原因分析

出现这个错误的核心问题有两个:

  1. 模型文件名错误:你的模型文件命名为Ngetest.phpp,多了一个后缀p,CodeIgniter无法识别并加载该文件,导致模型实例未被初始化。
  2. 模型实例调用规则不符:CodeIgniter 3默认加载模型后,会将模型类名转为全小写作为控制器中的属性名,直接使用类名($this->Ngetest)会找不到对应实例。

解决方案

1. 修正模型文件名

将模型文件重命名为Ngetest.php,确保文件名与类名完全一致,且后缀为标准的.php。

2. 调整控制器中的模型调用方式

有两种可选方式:

  • 方式一:使用小写属性名调用
    加载模型后,用全小写的模型名作为属性:
    public function index()
    {
        $dataModel = $this->ngetest->showEcho();
        print_r($dataModel);
    }
    
  • 方式二:加载模型时指定别名
    如果想保留类名的驼峰写法,可以在加载模型时指定别名,之后通过别名调用:
    public function __construct()
    {
        parent::__construct();
        // 第二个参数指定别名,后续用$this->Ngetest调用
        $this->load->model("Ngetest", "Ngetest");
    }
    

修改后的完整代码

模型文件(Ngetest.php)

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Ngetest extends CI_Model
{
    public function showEcho()
    {
        return "naisu";
    }
}

控制器文件(Tunjuk.php)

<?php
defined("BASEPATH") or exit("No direct script access allowed");

class Tunjuk extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model("Ngetest");
    }

    public function index()
    {
        // 使用小写属性名调用模型方法
        $dataModel = $this->ngetest->showEcho();
        print_r($dataModel);
    }
}

执行以上修改后,访问控制器的index方法就能正常输出naisu。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:27:08