2009-10-11 11 views
10

Gram z MVC zend Framework. Jedną z rzeczy, które odkryłem, jest to, że Zend Framework próbuje dołączyć skrypt widokowy za każdym razem, gdy wywoływany jest kontroler. Mogę go wyłączyć w bootstrapie za pomocą następującego kodu.Jak wyłączyć skrypt widoku w kontrolerze - Zend Framework

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

Jednakże, muszę zainicjować klasę Zend_View w metodzie sterownika, a następnie samemu wyrenderować plik skryptu.

Jak mogę przerwać dołączanie skryptu widoku w metodzie sterownika, aby móc go wyłączyć, jeśli tylko chcę?

Odpowiedz

30

można wyłączyć widok renderujący kontrolera pomocnika, z tego kodu w kontrolerze:

public function myAction() 
{ 
    $this->_helper->viewRenderer->setNoRender(true); 
    // from now on, ZF won't search for a matching view script file. 
} 
+0

thns dude ... to pomaga .... i twoi ans dotarli do 10 upvotes :) – chhameed

1

Łatwo, po prostu wyłącz to w swoim działaniu.

$this->_helper->layout->disableLayout(); 

Jeśli nie mówisz o układach, po prostu dodaj exit() do swojej akcji. Po prostu zrozum, jaki wpływ będzie mieć na twoją aplikację.

+0

to nie jest to, o co prosiłem, ale to też jest pomocne !! – Moon

4

Najlepszym przykładem byłoby użyć obu komend powyżej:

public function myAction() { 
    $this->_helper->layout->disableLayout(); 
    $this->_helper->viewRenderer->setNoRender(true); 
} 

Pierwszy wyłącza układ, ogólnie jest włączone

application.ini

domyślny

resources.layout.layoutPath = APPLICATION_PATH "/ layouty/scripts"

$this->_helper->layout->disableLayout();

i drugi Wyłącza zobaczyć skrypt (.phtml), więc nie jest rzucony wyjątek, jeśli plik skryptu widoku nie został znaleziony:

$this->_helper->viewRenderer->setNoRender(true); 

Istnieją również narzędzia do przeglądania, które zawierają bouth odsłuchane i nie są konieczne, na przykład chcesz zwrócić JSON z danych tablicy i nie renderować elementu widoku.

public function myAction() { 
    $this->_helper->json(array()); 
} 

nie wyrenderuje układu ani skryptu widoku.