我收到以下错误:
遇到未捕获的异常
类型:运行时异常
消息:正在加载的模型名称是已在使用的资源的名称:电子邮件
但是,此处触发了错误:
if(!class_exists("email"))
{
$this->load->model("email");
}
所以它不是一个现有的类,但"电子邮件"已经被使用。"电子邮件"是代码点火器中的关键字吗?如果没有,我如何找出触发此错误的原因?
这是 CI 中的缺陷之一 - 因为它使用自己的超全局对象,该对象包含任何加载的库、模型和第三方库。
如果您在此处查看 Loader 类,您会发现 Codeigniter 会检查该名称是否已被使用并因此被保留。
总之: 您的问题是,您已经加载了email
库,这意味着您不能再使用它的名称。
由于Codeigniter并不真正支持命名空间,因此您必须找到另一种技术来避免命名冲突。 我建议使用严格的命名约定。
例如:
- 对于任何型号,都应使用
_model
后缀。 - 对于任何自制库,
_library
后缀。
在您的特定情况下,只需将Email
模型重命名为Email_model
.
有关如何加载模型的更多信息,请查看其文档。