Правильный способ структуры папок MVC в Zend Framework
У меня есть проблема в именовании папок в MVC, поэтому я получаю следующие ошибки.
Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script'browsing-
history/browsinghistory.phtml' not found in path (C:/xampp/htdocs/test_app/application
/views\scripts/)' in C:\xampp\htdocs\test_app\library\Zend\View\Abstract.php:988 Stack
trace: #0 C:\xampp\htdocs\test_app\library\Zend\View\Abstract.php(884):
Zend_View_Abstract->_script('browsing-histor...') #1 C:\xampp\htdocs\test_app\library
\Zend\Controller\Action\Helper\ViewRenderer.php(900):
Zend_View_Abstract->render('browsing-histor...') #2 C:\xampp\htdocs\test_app\library
\Zend\Controller\Action\Helper\ViewRenderer.php(921):
Zend_Controller_Action_Helper_ViewRenderer->renderScript('browsing-histor...', NULL)
#3 C:\xampp\htdocs\test_app\library\Zend\Controller\Action\Helper
\ViewRenderer.php(960): Zend_Controller_Action_Helper_ViewRenderer->render() #4
C:\xampp\htdocs\test_app\library\Zend\Controller\Action\HelperBroker.php(277):
Zend_Controller_Action_Helper_ViewRenderer->postDispatch() #5 C:\xampp\htdocs\test_app
\library\Zend\Controller\Action.php in C:\xampp\htdocs\test_app\library\Zend\View
\Abstract.php on line 988
это мой контроллер
class BrowsingHistoryController extends Zend_Controller_Action{//my actions }
это моё действие
public function browsinghistoryAction(){}
и это моя структура папок в скриптах
scripts
->BrowsingHistory
->browsinghistory.phtml
я сделал то же самое для моих контроллеров, которые работают нормально, не знаю, почему это не работает?? Любая идея
3 ответа
Решение
Вам просто нужно переименовать BrowsingHistory
папка под /scripts
в историю просмотров и ваша проблема исчезнет!
По сути, контроллеры и действия находятся в camelCase, а скрипты - нет, вам просто нужно преобразовать и заменить каждую заглавную букву строчными буквами и добавить тире следующим образом:
- camelCase становится верблюжьим чехлом
- camelCaseTest становится верблюжьим тестом
- BrowsingHistory становится историей просмотра
Попробуйте следующую структуру:
application/
browsinghistory/
controllers/
BrowsinghistoryController.php
models/
views/
scripts/
browsinghistory/
browsinghistory.phtml
и измените имя вашего контроллера на BrowsinghistoryController
:
class BrowsinghistoryController extends Zend_Controller_Action{//my actions }