En este breve tutorial vamos a explicar como crear una acción de un controlador en CakePHP y que no se renderice ninguna vista. Es decir, no necesitamos mostrar datos por pantalla, y por tanto, no es necesario crear ninguna plantilla para la vista de la acción ejecuta.
Si no sigues estos pasos, cuando ejecutes la acción del controlador de CakePHP, se lanzará una excepción de este tipo, en el que se indica que no exite un fichero con la plantilla de la página a renderizar:
PHP |copy code |?
1 Error: The view for MiFuncionController::miFuncion() was not found.2 3 Error: Confirm you have created the file: c:\MiApp\app\View\MIFuncion\mi_funcion.ctp
Para evitar que salte esta excepción únicamente hay que añadir la siguiente línea al final del método que ejecuta la acción del controlador de CakePHP:
1 $this->autoRender = false;
A continuación mostramos un método que devolverá un mensaje pero que no cargará ninguna vista:
PHP |copy code |?
1 public function accionSinVista(){2 3 $this->set('result', "Resultado de la operación.");4 5 // No se va a mostrar nada por pantalla, no renderizar vista
6 $this->autoRender = false;7 8 }
Esto puede ser útil para obtener valores a través de peticiones ajax desde el navegador. Queremos que se ejecute una lógica en el servidor, pero no es necesario que se muestre una página. También podría ser útil cuando se realiza la lógica necesario y se redirecciona a otra vista.
Deja tu comentario