2013-03-27 3 views
0

Je suis donc conscient de la mise en œuvre de la norme PSR-0 dans Kohana 3.3. Cependant, il doit y avoir quelque chose que je ne suis pas comprendre que je reçois une erreur de classe n'a été trouvée pour le code suivant:Kohana 3.3 Modèle :: factory() Classe non trouvée

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

la définition du modèle se trouve à l'adresse:

classes/Model/MyModel.php 

Comment est-ce que mon classe n'est pas trouvé exactement?

code actuel:

Modèle situé à classes/Model/VoiceTalent.php

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

    class VoiceTalent 
    { 
     //methods and fields 
    } 

Code du contrôleur:

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

erreur exacte Message:

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

On dirait que cela devrait fonctionner. Un moyen facile de déboguer est d'ajouter des vidages dans l'autochargeur et de voir quel fichier il essaie de charger. – zombor

+0

Je suis d'accord avec zombor que le fichier devrait être chargé et que, si vous rencontrez un problème, il n'est probablement pas nécessaire de charger le fichier mais avec le contenu dans le fichier lui-même. – paquettg

+0

Il est en train de mourir dans la méthode d'usine du modèle. Permettez-moi de revérifier tout mon code, si ce n'est pas un problème d'autochargeur. – thatidiotguy

Répondre

4

Votre classe est mal nam éd.

Vous avez:

class VoiceTalent 

devrait être:

class Model_VoiceTalent 

que vous devez inclure tous les dossiers il est contenu (séparés par _) au nom de la classe. Dans ce cas, il suffit d'ajouter le préfixe Model_. Vous pouvez en savoir plus sur class naming convention in Kohana's docs.

+3

Et voici comment j'ai eu mon nom d'utilisateur. – thatidiotguy

+2

Par cette logique, nous devrions tous avoir ce surnom;) Ne vous inquiétez pas, nous avons tous été là. –