Codeigniter扩展自定义模型会产生致命错误

Rwd*_*Rwd 4 php codeigniter codeigniter-2

我已经看到了几个不同的帖子,但它们似乎都不适合我.

我有一个扩展CI_Model的类:

class Users_Model extends CI_Model {

public function __construct(){
    parent::__construct();
}
Run Code Online (Sandbox Code Playgroud)

然后:

class Students_Model extends Users_Model {

private $_students;

public function __construct(){
      parent::__construct();

      $this->_students = $this->get_students();
}
Run Code Online (Sandbox Code Playgroud)

但是,然后我收到此错误消息:

PHP Fatal error:  Class 'Users_Model' not found in /Users/rosswilson/Localhost/thedrumrooms/dreamweaver/ci/application/models/students_model.php
Run Code Online (Sandbox Code Playgroud)

我曾经require_once在扩展类中包含该文件,它可以工作.这是最好的做法/正确的方法吗?

谢谢.

tom*_*ans 5

CI中的标准做法是在application/corenamed中创建基本模型MY_Model.php,具体MY_取决于配置中定义的内容.

然后在你的内部MY_Model.php你可以在你的模型中扩展该文件中定义的许多类,基本上CodeIgniter的加载模型在这个路径和文件中查找已定义的类.

但是如果你想使用require_once你必须使用定义的APPPATH(应用程序路径)index.php.但是,您的自定义模型仍然需要扩展,CI_Model因为它使用CI模型的核心类,否则您的模型将无法工作.

require_once APPPATH.'/models/test.php';

增加说明:

谢谢@dean或者指出这一点.在MY_Model.php文件内部必须有一个MY_Model class扩展CI_Model.