Kohana 3自动装载模型

时间:2010-05-22 16:47:29

标签: kohana kohana-3 autoload

我正在尝试使用模型,但是我遇到了致命的错误,所以我认为它没有正确自动加载。

  

ErrorException [致命错误]:类   '找不到'Properties_Model'

违规控制线:

$properties = new Properties_Model;

模特:

class Properties_Model extends Model
{
    public function __construct()
    {
          parent::__construct();
    }

}

我还把课程放在三个不同的地方,希望有一个可以工作,但都失败了。 他们是: 应用/类/模型 应用程序/模型 应用/模型

我错过了什么?

2 个答案:

答案 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