我在Linux机器上遇到Kohana 2.3.4中的Class not found错误,但在Windows上运行正常。
我的Windows机器:
我的Linux机器:
我收到此错误:
Fatal error: Class 'calafate_orm' not found in /home/jay/workspace/Facebook_App/application/helpers/user.php on line 514
这就是我称之为模型的方式:
//controllers/user.php
class User_Core{
...
$fbuser = calafate_orm::factory('fbuser')->where('fbid', $user['id'])->find();
...
}
相同的代码在Windows上运行良好。
calafate_orm是这样的:
//libraries/calafate_orm.php
<?php
abstract class calafate_orm_core extends ORM{
protected $db = 'calafate';
protected $table_names_plural = false;
public function save(){
$field = ($this->id)?'modification_date':'creation_date';
$this->$field = date('Y-m-d H:i:s');
parent::save();
}
}
?>
我的所有文件名都是小写的。
可能会发生什么?
提前致谢
固定
库类名和文件名以大写字母开头。
将库重命名为Calafate_orm并编辑类声明:
<?php
abstract class Calafate_orm_core extends ORM{
...
}?>
就是这样。
感谢hakre指出我正确的方向。
答案 0 :(得分:0)
你应该在Facebook_Model中扩展Model而不是Facebook。
答案 1 :(得分:0)
正如hakre在评论中所说的那样here“图书馆类名和文件名以大写字母开头”
我将文件和类更改为以C开头并修复了问题。
当我将项目移动到Ubuntu时,我将每个文件名更改为小写,如果库错误的话。
感谢所有人,我希望这对未来的任何人都有帮助。