Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] - proste pytanie o Widok/Controler
Forum PHP.pl > Forum > PHP > Frameworki
ednet
Ucze się Zend Framework na podstawie tutoriala http://www.heavymind.net/zend-framework-tutorial/.

Wszystko dziala OK, ale jak dodam nowy kontroler i w nim jakieś akcje np nicAction to pokazuje sie błąd:
  1. Uncaught exception 'Zend_View_Exception' with message 'script 'foto/nic.phtml' not found in path (.\application\views\scripts\)' in D:\xampp\htdocs\zf\library\Zend\View\Abstract.php:857
  2. Stack trace:
  3. #0 D:\xampp\htdocs\zf\library\Zend\View\Abstract.php(765): Zend_View_Abstract->_script('foto/nic.phtml')
  4. #1 D:\xampp\htdocs\zf\library\Zend\Controller\Action\Helper\ViewRenderer.php(895): Zend_View_Abstract->render('foto/nic.phtml')
  5. #2 D:\xampp\htdocs\zf\library\Zend\Controller\Action\Helper\ViewRenderer.php(916): Zend_Controller_Action_Helper_ViewRenderer->renderScript('foto/nic.phtml', NULL)
  6. #3 D:\xampp\htdocs\zf\library\Zend\Controller\Action\Helper\ViewRenderer.php(955): Zend_Controller_Action_Helper_ViewRenderer->render()
  7. #4 D:\xampp\htdocs\zf\library\Zend\Controller\Action\HelperBroker.php(161): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
  8. #5 D:\xampp\htdocs\zf\library\Zend\Controller\Action.php(512): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
  9. #6 D:\xampp\htdocs\zf\library\Zend\C in <b>D:\xampp\htdocs\zf\library\Zend\View\Abstract.php</b> on line <b>857</b><br />


Po prostu brakuje pliku z widokiem dla tej metody. Zrozumiałe.
Wiadomo jednak że nie kazda metoda wymaga wlasnego widoku i tu moje pytanie.

Jak można zmusić ten framework aby nie szukal dla kazdej metody przypisanego widoku?
Pomaga dodanie w pliku index.php linii:

$frontController->setParam('noViewRenderer', true);

Czy jest inny sposób?

Ed
phpion
Ja napisałem sobie własny kontroler dziedziczący po Zend_Controller_Action. Zdefiniowałem w nim dodatkową metodę:
  1. <?php
  2. protected function disableRendering() {
  3.    $this->_helper->layout->disableLayout();
  4.    $this->_helper->viewRenderer->setNoRender();
  5. }
  6. ?>

Następnie wszystkie moje kontrolery dziedziczą po nim i w akcji, które są wywoływane poprzez Ajax, wywołuje tą metodę i mam sprawę załatwioną smile.gif
tomek_
ja nie tyle w pliku index a w konkretnych akcjach które nie mają renderować widoku dodaje

Kod
$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);


a jeśli chce żeby był wyrenderowany inny widok niż taki jak nazwa akcji daję 

Kod
$this->render('nazwa_pliku_widoku');
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.