Класс модели не найден в проекте Zend Framework (быстрый запуск) - PullRequest
3 голосов
/ 19 марта 2010

Я сделал следующее:

  1. zf создайте проект demo1 в командной строке
  2. добавьте строки в application.ini
    • appnamespace = "Application"
    • resources.layout.layoutPath = APPLICATION_PATH "/ layouts / scripts"
  3. добавить макет с верхним и нижним колонтитулом с использованием функции part () (они отлично работают)
  4. создать Data.php в каталоге моделей и добавить этот простой класс

    <?php class Application_Model_Data{   }//Application for appnamespace 
    
  5. , затем я попытался загрузить этот класс (путем создания экземпляра) из действия индекса контроллера индекса

    $ data = new Application_Model_Data ();

  6. , но когда я проверяю его даже на этом уровне, выдается ошибка

    Неустранимая ошибка: класс 'Application_Model_Data'не найден в C: \ Zend \ ... \ IndexController.php

Вопрос

  1. Хочу добавитьавтозагрузчик для загрузки моделей в приложение (я не использую модули)
  2. , если не то, что я пропустил, чтобы добавить

помогите пожалуйста я застрял в начале, спасибо

Ответы [ 5 ]

4 голосов
/ 22 июля 2011

это должно работать !!

добавить эту функцию для начальной загрузки:

protected function _initResourceAutoloader()
{
     $autoloader = new Zend_Loader_Autoloader_Resource(array(
        'basePath'  => APPLICATION_PATH,
        'namespace' => 'Application',
     ));

     $autoloader->addResourceType( 'model', 'models', 'Model');
     return $autoloader;
}
2 голосов
/ 18 июня 2012

напишите следующее в вашем файле начальной загрузки:

protected function _initDefaultModuleAutoloader()
{ 

    $resourceLoader = new Zend_Application_Module_Autoloader(array(
        'namespace' => '',
        'basePath'  => APPLICATION_PATH,
    ));

    return $resourceLoader;

}

в папке моделей создайте новый файл и назовите его «Data.php»

в Data.php объявите класс следующим образом:

class Model_Data extends Zend_Db_Table_Abstract {.....}

Теперь вы можете создать свою модель данных следующим образом:

$data = new Model_Data();

удачи: -)

2 голосов
/ 19 марта 2010

Вам нужно настроить автозагрузчик ресурсов в вашем Bootstrap, примерно так:

protected function _initResourceAutoloader()
{
     $autoloader = new Zend_Loader_Autoloader_Resource(array(
        'basePath'  => 'path/to/application/directory',
        'namespace' => 'Application_',
     ));

     return $autoloader;
}

При этом Zend может загружать модули в вашем приложении, и только не модели, а DbTable, Forms, Plugins и т. Д.

0 голосов
/ 10 мая 2016

Я забыл добавить расширение файла .php в файл, на тот случай, если кто-то другой совершит ту же ошибку

0 голосов
/ 19 марта 2010

в вашем приложении ini вы должны иметь autoloadernamespaces.0 = 'Application' вместо appnamespace

тогда ваша модель будет в

/ Библиотека / Application / Model / Data.php

но почему вы не используете папку «models» по умолчанию в предлагаемой структуре приложения.

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