我正在尝试使用模型,但是我遇到了致命的错误,所以我认为它没有正确自动加载。
ErrorException [致命错误]:类 '找不到'Properties_Model'
违规控制线:
$properties = new Properties_Model;
模特:
class Properties_Model extends Model
{
public function __construct()
{
parent::__construct();
}
}
我还把课程放在三个不同的地方,希望有一个可以工作,但都失败了。 他们是: 应用/类/模型 应用程序/模型 应用/模型
我错过了什么?
答案 0 :(得分:6)
啊,我直接通过电子邮件将此问题发送给我(通过我网站的联系表格)!
以下是我的回复(为了其他可能遇到此问题的人的利益)。
名为的模型的正确位置 属性是
application/classes/model/properties.php
,类定义如下 如下
class Model_Properties extends Model { }
将上面的下划线视为 目录分隔符。也就是说,如果你 用/你替换了下划线 会有:'模特/属性',哪个 将是
application/classes
下的文件。要从控制器加载模型, 你可以使用PHP的标准新 操作员或做我喜欢的,这是
$propertiesModel = Model::factory('Properties');
我不是100%为什么我更喜欢这种方式...... 但它对我有用:)
答案 1 :(得分:2)
首先, Kohana 3 fileyestem不像Kohana 2那样有效!
在K2中,自动加载器根据类的后缀查看类名搜索不同文件夹中的类。
在K3中,通过用斜杠替换下划线,将类名“转换”为文件路径。
即。 Class Properties_Model
变为classes/properties/model.php
正如您所看到的,在这个新系统中使用Model后缀并不能真正帮助对模型进行分组,因此基本上您将“Model”添加到类名而不是为其添加后缀:
Model_Property
位于classes/model/property.php
有关详细信息,请参阅Kohana 3 userguide