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