【问题标题】:An uncaught Exception was encountered - Type: RuntimeException in windows (codeigniter)遇到未捕获的异常 - 类型:Windows 中的 RuntimeException (codeigniter)
【发布时间】:2025-12-08 00:10:01
【问题描述】:

当我打开本地主机时,我的系统出现问题,它显示此错误:

遇到未捕获的异常

类型:RuntimeException

消息:无法找到您指定的模型:Project_model

文件名:C:\xampp\htdocs\txu\system\core\Loader.php

行号:344

回溯:

文件:C:\xampp\htdocs\txu\application\controllers\home.php 线路:9 功能:模型

文件:C:\xampp\htdocs\txu\index.php 线路:315 函数:require_once


这个模型:Project_model.php

class Project_model extends CI_Model{
function __construct()
{
    parent::__construct();
}

这是控制器:Project.php


class Project extends CI_Controller{
function __construct()
{
    parent::__construct();
    $this->load->model('project_model');
} 

这是我的家庭控制器:home.php

class Home extends CI_Controller{


function __construct()
{
    parent::__construct();
    $this->load->model('Project_model');
} 

在此之前它工作,我不知道为什么它现在不工作。控制台在 localhost 中显示错误: GET http://localhost/txu/ 500 (Internal Server Error)

谁能给我建议或想法?谢谢。

【问题讨论】:

  • 对不起,这是 Project_model.php.class 的代码 Project_model extends CI_Model { function __construct() { parent::__construct(); }
  • 我已经更新了问题

标签: php codeigniter


【解决方案1】:

对于项目模块;

将控制器名称创建为 Project.php

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

class Project extends CI_Controller {

    public function index()
    {
        $this->load->model('project_model');

        echo $this->project_model->my_model_func();         
        echo "<br> This is the Project Controller";
    }
}

创建名为 Project_Model.php 的模型

class Project_model extends CI_Model {

    public function my_model_func()
    {
        echo "Project_model model loaded with my_model_func";;
    }
}

并在http://your-base-url/index.php/project 上查看输出 您应该看到输出为

Project_model model loaded with my_model_func
This is the Project Controller

我希望这对你有用。

【讨论】:

  • class Project_model extends CI_Model { function __construct() { parent::__construct(); }
  • 抱歉,实际上这是 Project_model 的课程。
  • 这可能是因为命名约定错误,如果你可以替换这个 $this->load->model('project_model');与 $this->load->model('Project_model');并将您的控制器 home.php 重命名为 Home.php。
  • 嘿@Emma,我已经更新了答案,看看是否可以帮助你。
【解决方案2】:

在 2.1 左右的 Codeigniter 中;你像下面这样实例化模型>注意它以大写开头

$this->load->model('Project_model');

在 codeigniter 版本 3+ 上时;你总是以小写开始实例化模型,或者我应该说全部小写

$this->load->model('project_model');

因此,如果适合您,我希望您检查一下您的 codeigniter 版本。

如果您将模型实例化为“Project_model”,则用法相同,然后将其用作:

$this->Project_model->action();

区分大小写;

【讨论】:

    最近更新 更多