Неисправимая среда Zend Framework: класс 'Application_Model_DbTable_Albums' не найден в - PullRequest
2 голосов
/ 08 августа 2011

Я пытаюсь изучить Zend Framework из раздела «Начало работы с Zend Framework» Роба Аллена. Я использовал тот же пример, который был приведен, но получаю ошибку -

Неустранимая ошибка: класс Application_Model_DbTable_Albums не найден в /var/www/html/workbench/sreekantk/zf-tutorial/application/controllers/IndexController.php в строке 14.

Я думаю, что должен указать путь к папке моделей, но не знаю, как это сделать. Может ли кто-нибудь помочь мне выйти из этого.

Это мой Bootstrap.php файл.

// application / Bootstrap.php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => APPLICATION_PATH.'/application/modules'));
        return $autoloader;
    }

}

Спасибо, просто H. Это сработало. На самом деле я изменил структуру папок и после снова добавил appnamespace="Application" в файл application.ini. Спасибо всем за ваши комментарии.

Ответы [ 4 ]

2 голосов
/ 08 августа 2011

Пока вы добираетесь до контроллера, ваша основная настройка, кажется, в порядке. Итак, если у вас есть класс в отдельном файле, проблема, вероятно, где-то в простой опечатке.

а) со всеми перечисленными ниже обратите внимание на строчные и прописные буквы
b) обратите внимание, что папка моделей во множественном числе , тогда как классом является Модель единственного числа
c) убедитесь, что класс называется Application_ Model _DbTable_Albums
г) убедитесь, что файл с именем Albums.php и в папке с именем application/models/DbTable

Удачи в обучении ZF

1 голос
/ 09 августа 2011

Начиная с версии 1.9.2, модуль по умолчанию автоматически инициализирует автозагрузчик для пространства имен, настроенного в appnamespace (по умолчанию «Application» при установке vanilla). Вы можете удалить свой метод _initAutoload().

Пока ваш класс существует в application/models/DbTable/Albums.php и называется Application_Model_DbTable_Albums, он должен иметь возможность автоматически загружать класс при первом использовании.

Помните о чувствительности к регистру.

0 голосов
/ 06 апреля 2013

Вы должны определить класс Bootstrap текущего модуля. Тогда все будет хорошо.

0 голосов
/ 29 марта 2012

Я следую тому же учебнику, и то, что сказал Адриан Уорлд 9 августа 2011 года в 13:26, помогло мне избавиться от ошибки.Моя Bootstrap теперь выглядит так:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => APPLICATION_PATH.'/application/models'));
        return $autoloader;
    }
}

Где единственное, что изменилось, это от модулей до моделей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...