2009-10-11 3 views
10

Ich spiele mit Zend Framework MVC. Eine Sache, die ich herausgefunden habe, ist, dass Zend Framework versucht, ein View-Skript einzubinden, wenn ein Controller aufgerufen wird. Ich kann es im Bootstrap mit dem folgenden Code deaktivieren.So deaktivieren Sie ein View-Skript in einem Controller - Zend Framework

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

Allerdings muss ich Zend_View-Klasse in einer Controller-Methode initialisieren und dann selbst eine Skriptdatei rendern.

Wie kann ich aufhören, ein View-Skript in eine Controller-Methode zu integrieren, damit ich es deaktivieren kann, wenn ich nur möchte?

Antwort

30

können Sie die Ansicht Renderer Controller Helfer, mit diesem Code in Ihrem Controller deaktivieren:

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

thns dude ... es hilft .... und deine ans erreichte 10 upvotes :) – chhameed

1

Einfach, deaktivieren Sie es einfach aus Ihrer Aktion.

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

Wenn Sie Layouts sprechen nicht, dann fügen Sie einfach einen Ausgang(), um Ihre Aktion. Verstehen Sie einfach, welche Auswirkungen Ihre Bewerbung haben wird.

+0

das ist nicht das, was ich gefragt habe, aber das ist auch hilfreich !! – Moon

4

Das beste Beispiel über die beiden Befehle zu verwenden wäre:

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

Zuerst ein deaktiviert Layout, im allgemeinen ist

aktiviert

application.ini

Standard

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

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

sowie zweites deaktiviert ansehen Skript (.phtml), so wird keine Ausnahme ausgelöst, wenn Skriptdatei wird nicht gefunden

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

Es gibt auch View-Helfer, die Bouth angehört haben und nicht notwendig sind. Sie möchten beispielsweise JSON aus Array-Daten zurückgeben und das View-Element nicht rendern.

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

rendern nicht Layout noch Skript anzeigen.

Verwandte Themen