在 PHP CodeIgniter 3 中扩展自己的 class

Extending own class in PHP CodeIgniter 3

我有两个模型:models/Categories.phpmodels/backend/BE_categories.php

我想要 BE_categories class 扩展类别,因为它有一些我可以重复使用的有用功能:

Categories.php

class Categories extends CI_Model
{
...

BE_categories.php

class Be_categories extends Categories
{
...

但是当 $this->load->model('models/be_categories') 我收到错误消息:无法找到指定的 class:Session.php 但它适用于扩展 CI_Model 我做错了什么?

只是我的猜测,您在类别模型中的某些函数中加载了会话库,然后尝试在模型中使用具有会话库特定函数的函数 BE_Categories。

在config/autoload.php中添加Session库或在Categories模型构造器中加载,记得在BE_Categories.

中添加构造器

我还有一个名为 Categories.php 的控制器,带有 class Categories,这是 CI 感到困惑的地方。

我不得不 重命名 models/Categories.phpmodels/Categories_model.php 以及 class 名称。

但扩展时还必须包含文件:

BE_categories_model.php

include('application/models/Categories_model.php');
class Be_categories_model extends Categories_model
{
...

编辑:

感谢评论者,最好将此模型包含在 config/autoload。php 而不是使用 PHP 的 include() 函数。