在 PHP CodeIgniter 3 中扩展自己的 class
Extending own class in PHP CodeIgniter 3
我有两个模型:models/Categories.php
和 models/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.php
到 models/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()
函数。
我有两个模型:models/Categories.php
和 models/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.php
到 models/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()
函数。