2013-03-27 5 views
0

Так что я знаю о внедрении стандарта PSR-0 в Kohana 3.3. Однако, должно быть что-то я не понимая, как я получаю класса не найдена ошибка для следующего кода:Kohana 3.3 Model :: factory() Класс не найден

$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 
    } 

Controller Код:

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

Точное сообщение об ошибке:

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

Похоже, что это должно сработать. Легкий способ отладки - добавить несколько дампов в автозагрузчик и посмотреть, какой файл он пытается загрузить. – zombor

+0

Я должен согласиться с zombor, что файл должен быть загружен и что, если у вас возникла проблема, возможно, это не происходит с фактической загрузкой файла, а с содержимым самого файла. – paquettg

+0

Он умирает в заводском методе модели. Позвольте мне перепроверить весь мой код, если это действительно не проблема автозагрузчика. – thatidiotguy

ответ

4

Ваш класс плохо Нама редактор

У вас есть:

class VoiceTalent 

Должно быть:

class Model_VoiceTalent 

как вы должны включать все папки Содержится в (разделенных _) в имени класса. В этом случае вам просто нужно добавить префикс Model_. Вы можете узнать больше о class naming convention in Kohana's docs.

+3

И вот как я получил свое имя пользователя. – thatidiotguy

+2

По этой логике мы все должны иметь это прозвище;) Не беспокойтесь, мы все были там. –

Смежные вопросы