2013-03-27 146 views
0

所以我意识到在Kohana 3.3中实现PSR-0标准。但是,一定有什么,因为我得到一个类未找到错误的下面的代码我不理解:Kohana 3.3 Model :: factory()Class Not Found

$model = Model::factory('MyModel'); 

模型定义位于:

classes/Model/MyModel.php 

它是如何,我班级没有被准确地找到?

实际代码:

型号位于classes/Model/VoiceTalent.php

<?php defined('SYSPATH') or die('No direct script access.'); 

    class VoiceTalent 
    { 
     //methods and fields 
    } 

控制器代码:

$talent = Model::factory('VoiceTalent'); 

确切的错误信息:

ErrorException [ Fatal Error ]: Class 'Model_VoiceTalent' not found 
SYSPATH\classes\Kohana\Model.php [ 26 ] 
+1

看起来应该可以工作。一个简单的调试方法是在自动加载器中添加一些转储,并查看它要加载的文件。 – zombor 2013-03-27 15:20:39

+0

我必须同意zombor该文件应该加载,并且,如果您有问题,它可能不是实际加载文件,但与文件本身的内容。 – paquettg 2013-03-27 15:22:39

+0

它正在模型的工厂方法中死去。让我重新检查我的所有代码,如果它确实不是自动加载器问题。 – thatidiotguy 2013-03-27 15:24:02

回答

4

你的类是严重的南编辑。

您有:

class VoiceTalent 

应该是:

class Model_VoiceTalent 

,你必须包括它包含在所有文件夹中的类名(由_分隔)。在这种情况下,您只需添加Model_前缀。你可以阅读更多关于class naming convention in Kohana's docs

+3

这就是我如何得到我的用户名。 – thatidiotguy 2013-03-27 17:02:35

+2

通过这种逻辑,我们都应该有这个昵称;)别担心,我们都在那里。 – 2013-03-27 18:49:54