代码点火器有"email"关键字吗?



我收到以下错误:

遇到未捕获的异常

类型:运行时异常

消息:正在加载的模型名称是已在使用的资源的名称:电子邮件

但是,此处触发了错误:

if(!class_exists("email"))
{
$this->load->model("email");
}

所以它不是一个现有的类,但"电子邮件"已经被使用。"电子邮件"是代码点火器中的关键字吗?如果没有,我如何找出触发此错误的原因?

这是 CI 中的缺陷之一 - 因为它使用自己的超全局对象,该对象包含任何加载的库、模型和第三方库。

如果您在此处查看 Loader 类,您会发现 Codeigniter 会检查该名称是否已被使用并因此被保留。

总之: 您的问题是,您已经加载了email库,这意味着您不能再使用它的名称。

由于Codeigniter并不真正支持命名空间,因此您必须找到另一种技术来避免命名冲突。 我建议使用严格的命名约定。

例如:

  1. 对于任何型号,都应使用_model后缀。
  2. 对于任何自制库,_library后缀。

在您的特定情况下,只需将Email模型重命名为Email_model.

有关如何加载模型的更多信息,请查看其文档。

相关内容

  • 没有找到相关文章

最新更新