【问题标题】:Where do my own classes go in CodeIgniter 2.1.2?我自己的课程在 CodeIgniter 2.1.2 中去哪里了?
【发布时间】:2013-02-12 17:49:43
【问题描述】:

我在使用 codeigniter 使用我自己的类时遇到了一些问题。如果不是错误,它总是说无法加载该类。 例如,我创建了一个带有属性的类“Student”,只有 getter 和 setter 方法,所以我需要在模型中使用该类来返回一个“Students”数组(我不能用“load->library” ) 或接收一个“学生”来存储它,我还需要那个类让我的控制器对“学生”做一些事情

我在 Windows 中工作,我不想使用 ORM,因为 de app 不大。

我也想在我的模型中做这样的事情:

while(something){
    $arr[] = new Student();
}
return $arr;

我能做什么?我会很感激你的回答。

(PD:对不起,我不会说英语)

我解决了 我唯一要做的就是创建文件 Student.php(Student 类所在的位置),然后将其放在库中:

$this->upload->library("Student.php");

然后我们可以“实例化”这个类。

【问题讨论】:

  • 请将解决方案添加为答案并选择它作为答案。

标签: php codeigniter class entity entities


【解决方案1】:

您正在开发什么操作系统?

在基于 Unix 的操作系统上,文件系统区分大小写,因此请确保在调用库时例如:

$this->load->library('student'); 磁盘上的文件名为Student.php。但是在 Windows 上,文件系统不区分大小写,因此这不是真正的问题。

有关更多信息,您应该阅读:

Case sensitive file names in Linux and not in Windows

更新

从您的 cmets 来看,您应该希望像使用库一样使用您的类,在这种情况下,您应该将文件包含在“库”目录中并加载 documentation 中概述的库。

$this->load->library('students');

那么你就可以使用你的方法了

$this->students->method_name();

确保按照上述autoload 手动加载库。

【讨论】:

  • 我在 Windows 上工作,但我必须把“Students.php”放在哪里?因为我想做这样的事情:while(something){ $arr[] = new Student(); } 返回 arr;
  • 什么是 'Students' 它包含业务逻辑吗?例如是模特吗-ellislab.com/codeigniter/user-guide/general/models.html
  • 不,只有 getter 和 setter。但我想在我的模型和控制器中使用它
  • 是的,我以前做过,但在那种情况下,我不能做一个学生数组
  • 您能否发布您的students.php 文件的内容,以便我查看其中包含的内容来尝试诊断您的问题?尝试上传到 pastebin
猜你喜欢
  • 2010-09-13
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 2011-11-03
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多