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

CodeIgniter数据获取失败求助:模型未定义错误

解决CodeIgniter中"Undefined property: Addwerknemer::$Werknemer_model"错误

嘿,这个错误我之前在CodeIgniter项目里也碰到过,本质就是你的Addwerknemer控制器没法找到Werknemer_model这个模型,大概率是加载步骤或者命名规范出了问题,给你几个具体的解决方向:

1. 先确认模型的命名和文件位置是否合规

CodeIgniter对模型的命名有严格要求:

  • 模型文件必须放在application/models/目录下,文件名要全小写,比如werknemer_model.php(哪怕是Windows系统,也建议遵循这个规范,避免跨环境出问题)
  • 模型类名要首字母大写,并且和文件名对应,比如文件里的类定义应该是:
    class Werknemer_model extends CI_Model {
        // 这里写你的模型逻辑,比如获取数据的方法
        public function get_werknemer_data() {
            return $this->db->get('werknemer')->result();
        }
    }
    

2. 在控制器中正确加载模型

你必须先加载模型,才能通过$this->Werknemer_model调用它,有两种常用方式:

全局加载(在控制器构造函数中)

适合多个方法都要用到这个模型的情况:

class Addwerknemer extends CI_Controller {
    public function __construct() {
        parent::__construct();
        // 加载模型,这里的名称要和模型类名一致(首字母大写)
        $this->load->model('Werknemer_model');
    }

    public function show_data() {
        // 现在可以正常调用模型的方法了
        $data['werknemers'] = $this->Werknemer_model->get_werknemer_data();
        // 传递数据到视图
        $this->load->view('your_view_file', $data);
    }
}

局部加载(在需要的方法中)

如果只有单个方法用到模型,可以这样:

class Addwerknemer extends CI_Controller {
    public function show_data() {
        // 在方法内加载模型
        $this->load->model('Werknemer_model');
        $data['werknemers'] = $this->Werknemer_model->get_werknemer_data();
        $this->load->view('your_view_file', $data);
    }
}

3. 检查调用模型时的大小写一致性

如果你加载模型时用的是小写名称(比如$this->load->model('werknemer_model')),那调用的时候也要用小写:

$this->load->model('werknemer_model');
// 调用时必须对应小写
$data['werknemers'] = $this->werknemer_model->get_werknemer_data();

最后再检查下:模型文件确实存在于application/models/下,文件名和类名没有拼写错误,加载语句的名称和模型类名匹配,应该就能解决这个问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:45:13