CodeIgniter User Guide Version 1.6.1


Vistas

Una vista es simplmenete una página web, o un fragmento de ella, como un encabezado, un píe de página, una barra lateral, etc. De hecho, las vistas pueden ser flexiblemente embebidas dentro de otras vistas (dentro de otras vistas, etc., etc.) si necesita este tipo de jerarquía.

Las vistas nunca son llamadas directamente, ellas deben ser cargadas por un controlador. Recuerda que en un entorno de trabajo MVC, el Controlador actua como el "policia de tránsito", así que es responsable de traer una vista en particular. Sino ha leído la página del Controlador debería hacerlo antes de continuar.

Usando el controlador que creó en la página de controlador, le permite agregar una vista a él.

Crear una vista

Usando su editor de texto, cree un archivo llamado vistablog.php, y ponga esto en él:

Entonces guarde el archivo en su carpeta application/views/.

Cargando una Vista

Para cargar un archivo de vista en particular, usará la siguiente función:

$this->load->view('nombre');

Donde nombre es el nombre de su archivo de vista. Nota: no es necesario especificar la extensión .php del archivo a menos que use una distinta de .php.

Ahora, abra el archivo controlador que hizo previamente llamado blog.php, y reemplace la sentencia "echo" con la función de carga de vista:

Si visita su sitio usando la URL que usó antes, debería ver su nueva vista. La URL era similar a esta:

www.su-sitio.com/index.php/blog/

Cargando múltiples vistas

CodeIgniter manejará inteligentemente múltiples llamadas a $this->load->view desde dentro de un controlador. Si más de una llamada ocurre serán agregados juntos. Por ejemplo, puede querer tener una vista de encabezado, una vista de menu, una vista de contenido, y una vista de píe de página. Eso puede verse más o menos así:

<?php

class Pagina extends Controller {

   function index()
   {
      $datos['titulo_pagina'] = 'Su titulo';
      $this->load->view('encabezado');
      $this->load->view('menu');
      $this->load->view('contenido', $datos);
      $this->load->view('pie_de_pagina');
   }

}
?>

En el ejemplo anterior, estamos usando "datos agregados dinámicamente", el cual verá debajo.

Guardando Vistas dentro de Sub-carpetas

Sus archivos de vista pueden ser guardados dentro de sub-carpetas si prefiere ese tipo de organización. Cuando lo haga, necesitará incluir el nombre de la carpeta al cargad la vista. Ejemplo:

$this->load->view('nombre_carpeta/nombre_archivo');

Agregar Datos Dinámicos a la Vista

Los datos son pasados desde el controlador a la vista de la forma de un arreglo o un objeto en el segundo parámetro de la función de carga de vistas. Aquí hay un ejemplo usando un arreglo:

$datos = array(
               'titulo' => 'Mi Titulo',
               'encabezado' => 'Mi Encabezado',
               'mensaje' => 'Mi Mensaje'
          );

$this->load->view('vistablog', $datos);

Y aquí hay un ejemplo usando un objeto:

$datos = new Someclass();
$this->load->view('vistablog', $datos);

Nota: si usa un objeto las variables de clase serán convertidas en un arreglo de elementos.

Probémoslo con su archivo controlador. Ábralo y agregue este código:

Ahora puede abrir su archivo de vista y cambiar el texto a variables que correspondan a las claves del arreglo de sus datos:

Entonces cargue la página en la URL que viene usando y debería ver las variables reemplazadas.

Creando Iteraciones

El arreglo de datos que le pasa a su archivo de vista no está limitado a variables simples. Puede pasar arreglos multidimensionales, los que serán iterados para generar múltiples filas. Por ejemplo, si trajo datos de su base de datos tipicalmente será en la forma de un arreglo múltidimensional.

Aquí hay un ejemplo simple. Agregue esto a su controlador:

Ahora abra su archivo de vista y cree la iteración:

Nota: Notará que en el ejemplo de arriba estamos usando la sintaxis alternativa de PHP. Si no está familiarizado con ella, puede leer acerca de ella aquí.