2011-12-20 3 views
1

У меня есть модуль с именем администратора в моих ZEND project.I я перенаправлять к действию имени viewAction контроллера имени DeliveryCentersController с помощьюФатальная ошибка: Class «Admin_Model_DbTable_Region» не найден в Zend

$this->_helper->redirector->gotoSimple('view','deliveryCenters','Admin',array('param1' => 'test')); 

Сейчас в viewAction из deliveryCentersController я следующее:

class Admin_DeliveryCentersController extends Zend_Controller_Action 
{ 

     public function viewAction() 
     { 
      $region=new Admin_Model_DbTable_Region(); 
      $this->view->dc=$region->getDeliveryCenters(); 
      // action body 
     } 

    } 

здесь у меня есть класс с именем Admin_Model_DbTable_Region в модуле администратора в модели/папки DbTable. Теперь выполнение перенаправляется на viewAction модуля admin, но говорит об ошибке как Неустранимая ошибка: Class 'Admin_Model_DbTable_Region' не найден в C: \ Users \ 398853 \ Documents \ NetBeansProjects \ MST \ application \ modules \ Admin \ controllers \ DeliveryCentersController.php on line 19 Plz разрешить эту ошибку. Спасибо заранее.

+0

Кроме того, это называется Zend Framework, а не Zend. Zend! == Zend Framework. Они относятся к двум совершенно другим вещам. – Layke

ответ

2

добавить это в application.ini:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules[] = "" 

и добавить файл Bootstrap.php в вашем модулей администратора:

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 

} 
+0

Это сработало. Но мне нужно создавать файл bootstrap.php каждый раз, когда я создаю модуль? – ryan

+0

каждый модуль должен иметь свой бутстрап! ;) – JellyBelly

+0

палец вверх чувак. – chhameed

1

Ваш model каталог не следует называть «моделью», его следует называть models.

Если вы настаиваете при использовании model, тогда вы должны добавить этот префикс к загрузчику ресурсов, используя что-то подобное в вашем Bootstrap.

$loader = $this->getResourceLoader(); 
$loader->addResourceType('model', 'model', 'Model'); 

Кроме того, вы не должны использовать Action Stack. Это ужасная практика, и вместо того, чтобы иметь страницу, которая загружается в 80 мс (когда оптимизирована), вы будете бороться, чтобы получить ее до 120 мс.

Смотрите этот пост в блоге на action stack.

+0

Вы хотите сказать, что нам не следует использовать помощников вида? – ryan

+0

Я переименовал модель в модели, но все же возникает одна и та же проблема. – ryan

+0

Каков путь к файлу, содержащему класс 'Admin_Model_DbTable_Region'? Это должно быть: 'application/modules/Admin/models/DbTable/Region.php'. Также будьте осторожны с верхним/нижним регистром. Вы используете имя модуля '' Admin''; обычно это будет '' admin'', и имя каталога будет соответствовать. Вы должны быть в порядке с тем, что у вас есть, но это еще одна возможная область расследования для отказа автозагрузки. –

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