Zend Framework, класс модели не найден в модуле

Я создал приложение с этими подробностями:

1- zf создать проект MyApp

2- zf создать модуль admin

3- zf создать контроллер Index 1 admin

MyApp/application/modules/admin/контроллеры/IndexController.php:

class admin_IndexController extends Zend_Controller_Action
{

    public function init()
    {
        error_reporting(E_ALL);
        ini_set('display_errors', 'On');
    }

    public function indexAction()
    {

        $aa = new Admin_Model_DbTable_Posts();

    }

}

application.ini:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap" 
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

MyApp/application/modules/admin/models/DbTable/Posts.php:

class Admin_Model_DbTable_Posts extends Zend_Db_Table_Abstract    
{
    public function init()
    {

    }
}

В этой точке я получаю ошибку:

Fatal error: Class 'Admin_Model_DbTable_Posts' not found in /var/www/MyApp/application/modules/admin/controllers/IndexController.php on line 16

и когда я поставлю эту строку на application.ini

resources.modules[] =

И добавьте bootstratp.php в папку администратора с этим контентом

class Admin_Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

}

После длительного периода запроса я получаю эту ошибку:

HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request.

что я должен сделать, чтобы он работал?

0
nl ja de

3 ответы

class Admin_Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

}

должно быть

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{

}

Использование Module_Bootstrap должно работать, чтобы предоставить активы модуля вашему приложению. Я бы не сделал никаких других изменений.

Игнорируйте предыдущий ответ, добрый совет, если вы не используете стандартную настройку, но ваша настройка, по-видимому, стандартная. Возможно, вам придется использовать admin в admin_IndexController, но, возможно, нет.

1
добавлено
спасибо, я получаю удовольствие от раздражающей ошибки 500, но я застрял в Fatal error: Class 'Admin_Model_DbTable_Posts' не найден в/var/www/MyApp/application/modules/admin/controller/IndexCo & zwnj; ntroller.php в строке 18
добавлено автор user1438910, источник

Некоторые полезные советы для вас

  • Явно загружать модули в application.ini с помощью:
    resources.modules[] = "admin"
    resources.modules[] = "default"
  • Убедитесь, что вы используете двойную кавычку ", а не одинарную кавычку ' для строковых литералов в файле application.ini.

  • Если Admin_Model_DbTable_Posts не найден, то zend_autoloader или путь включения не завершены. Вы можете установить автозагрузчик zend для использования опции возврата обратно со следующим кодом внутри Bootstrap.ini

protected function _initAutoload()
{
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->registerNamespace(array('Admin_'));
    $autoloader->setFallbackAutoloader(true);
    $autoloader->suppressNotFoundWarnings(false);   
    return $autoloader;
}

Надеюсь, поможет!

1
добавлено
это очень странно! Какой URL (ы) приводят к этому странному поведению. Я хочу думать, что возможно .htaccess имеет какое-то отношение к нему. Кстати, что вы подразумеваете под «типом петли»?
добавлено автор shawndreck, источник
в любом случае, что находится в вашем основном файле .htaccess? Это особенно странно, что ни одна из журналов не остается в стороне от этой ошибки. Старайтесь что-то придумать!
добавлено автор shawndreck, источник
любая дополнительная строка для appication.ini начинается с resource.modules [], вызывают какой-то результат цикла в «HTTP Error 500 (Internal Server Error)», я не знаю почему? и в /var/apache2/error.log пусто!
добавлено автор user1438910, источник
mydomain.com/admin вернет этот результат. Я должен сказать, что он отправляет запрос, и он занимает слишком много времени, вместо цикла.
добавлено автор user1438910, источник
Я уверен, что это не проблемы с htaccess.
добавлено автор user1438910, источник

Я решил проблему, собрав ответы shawndreck и RokyFord. благодаря обеим темам. Я на самом деле перенастроил файл application.ini. Я сделал следующее:

Я воссоздал еще один простой проект, и он отлично работает, поэтому я сравниваю два файла проекта.

Тогда я понимаю, что с изменением

<Р> Zend_Application_Bootstrap_Bootstrap

в

<Р> Zend_Application_Module_Bootstrap

и класть ресурсы.modules [] = "admin" в application.ini, он работает.

  • Несколько раз ЗАВЕРШЕНО application.ini вызывает много проблем в Zend-Framework - по крайней мере, для меня это случается много -.
0
добавлено