Pregunta

Cuando he creado un nuevo controlador, es decir, en este caso Authenticate, He creado la carpeta y el archivo application/views/scripts/authentication/index.phtml

No es un problema al golpear la URL http://dev.local/authentication/ Pero al llamar a cualquier acción, es decir http://dev.local/authentication/login, Recibo el error a continuación.

Message: script 'authentication/login.phtml' not found in path (C:\Sites\application\views\scripts\)

Independientemente de cualquier cambio que pueda hacer en la acción de inicio de sesión, no debería pedir automáticamente una nueva página, ¿verdad? ¿O me equivoco?

¿Fue útil?

Solución

Por defecto, cada acción requiere su vista correspondiente (página PHTML). Si desea deshabilitar una vista/diseño para una acción determinada, puede usar el siguiente código:

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

Editar en respuesta al comentario:

Por lo general, no necesito hacer esto, porque las acciones que tengo que no necesitan un script de vista se redirigen/se agachan a otras acciones. Por ejemplo, una vez que su usuario esté autenticado (es decir, cuando /autenticación /inicio de sesión tiene éxito), puede redirigirlo a la página de inicio (o cualquier página a la que intente acceder. De manera similar, si el inicio de sesión falló, simplemente establece un mensaje de error en la vista y reenvío a la acción que muestra el formulario de inicio de sesión.

Las únicas acciones para las que uso el código anterior son para acciones que generalmente se llaman usando AJAX y que emiten algún código JSON, por ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top