Php CodeIgniter中的继承
我正在构建一系列表单,并试图将父表单类的功能继承到所有表单中。比如说, LeaveForm扩展了表单模型 LeaveFormController扩展了FormController 我正在处理LeaveFormController和LeaveForm中所有与请假表相关的内容 在LeaveFormController构造函数中,我只需调用父类构造函数,然后加载LeaveForm模型。在FormController构造函数中,我加载表单模型 我的问题是,我出错了 无法在form.php中重新声明类表单Php CodeIgniter中的继承,php,codeigniter,inheritance,Php,Codeigniter,Inheritance,我正在构建一系列表单,并试图将父表单类的功能继承到所有表单中。比如说, LeaveForm扩展了表单模型 LeaveFormController扩展了FormController 我正在处理LeaveFormController和LeaveForm中所有与请假表相关的内容 在LeaveFormController构造函数中,我只需调用父类构造函数,然后加载LeaveForm模型。在FormController构造函数中,我加载表单模型 我的问题是,我出错了 无法在form.php中重新声明类表单
我的架构搞错了吗?如何处理此问题?检查类是否已按如下方式初始化:
if (!class_exists('classname'))
{
// ok fine create new instance now
}
检查类是否已按如下方式初始化:
if (!class_exists('classname'))
{
// ok fine create new instance now
}
可能是在$this->load->model'Form时,手动包含models/Form.php文件
在leaveform.php模型文件中,确保加载使用codeigniter的模型加载机制而不是require或include扩展的超类模型。Codeigniter有一个加载程序,它跟踪已经加载的文件,以避免重新声明类,但您需要使用$this->load来使用它。它不知道直接使用include或require加载的文件
因此,在leaveform.php的顶部,使用以下命令:
$CI =& get_instance(); $CI->load->model('Form');
这并不相关,但除非您以与命名控制器类相同的方式命名CodeIgniter模型类的名称,否则您会感到痛苦
尝试使用FormModel扩展CI_模型{};而不是形式扩展CI_模型{} 当您$this->load->model'Form时,是否手动包含models/Form.php文件
在leaveform.php模型文件中,确保加载使用codeigniter的模型加载机制而不是require或include扩展的超类模型。Codeigniter有一个加载程序,它跟踪已经加载的文件,以避免重新声明类,但您需要使用$this->load来使用它。它不知道直接使用include或require加载的文件
因此,在leaveform.php的顶部,使用以下命令:
$CI =& get_instance(); $CI->load->model('Form');
这并不相关,但除非您以与命名控制器类相同的方式命名CodeIgniter模型类的名称,否则您会感到痛苦
尝试使用FormModel扩展CI_模型{};而不是形式扩展CI_模型{} 也许是?此外,我建议在Codeigniter的forumsMaybe或?我还建议在Codeigniter论坛上创建一个新的线程