2009-10-11 10 views
10

Estoy jugando con MVC de zend framework. Una cosa que descubrí es que Zend Framework intenta incluir una secuencia de comandos de vista cada vez que se llama a un controlador. Puedo desactivarlo en bootstrap con el siguiente código.Cómo deshabilitar una secuencia de comandos de vista en un controlador - Zend Framework

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

Sin embargo, tengo que inicializar la clase Zend_View en un método de controlador y luego renderizar un archivo de script yo mismo.

¿Cómo puedo dejar de incluir una secuencia de comandos de vista en un método de controlador para poder desactivarlo si solo quiero?

Respuesta

30

puede desactivar el controlador de ayudante de vista de render, con este código en el controlador:

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

ese tio ... ayuda ... y tus ans llegaron a 10 votos positivos :) – chhameed

1

Fácil, simplemente deshabilítelo dentro de su acción.

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

Si no está hablando de diseños, simplemente agregue una salida() a su acción. Simplemente entienda qué tipo de impacto tendrá en su aplicación.

+0

eso no es lo que estaba preguntando, ¡pero eso también es útil! – Moon

4

El mejor ejemplo sería el uso de los dos comandos anteriores:

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

El primero desactiva la disposición, en general está habilitado

application.ini

predeterminado

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

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

y segundo deshabilita la vista guión (.phtml) de modo excepción no se produce si Ver archivo de guión no se encuentra

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

También hay ayudantes de visualización que incluyen abowe escuchado y no son necesarios, por ejemplo, desea devolver JSON desde datos de matriz y no mostrar el elemento de vista.

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

no representará el diseño ni verá el script.

Cuestiones relacionadas