Fichero routes.php

El archivo routes.php nos permite reasignar solicitudes URI a métodos de un controlador específico. Por ejemplo, si tuviéramos un controlador llamado libros con un método **index**, la combinación para acceder a esa acción de dicho controladorsería así:

http://localhost/proyecto/libros/index

Una funcionalidad importante es que el método index no es necesario especificarlo ya que se llamará de forma automática sino lo añadimos la URI, es decir, ante esta petición:

http://localhost/proyecto/libros/

CodeIgniter cargará el controlador libros y buscará el método index() que si está definido lo invocará de forma automática. Por eso, los desarrolladores de CodeIgniter nos recomiendan implementarlo siempre aunque realicemos una redirección a otro método.

Por ejemplo, si nuestro controlador **libros** tiene un método (acción) **ver**() que acepta un identificador para mostrar los datos de un el libro de nuestra base de datos, la URI resultante sería así:

http://localhost/proyecto/libros/ver/4

En algunos casos, puede que nos interese mapear una o más rutas por defecto, es decir, especificar una ruta que no existe realmente en sí pero que internamente lleve al usuario al controlador y acción correspondiente. En un proyecto como el que estamos desarrollando tendremos páginas que sólo muestran información, como la de servicios (servicios que ofrece la empresa), quienes somos, mapa web de la aplicación, etc y que podríamos englobar en un controlador **site** y crear rutas que oculte dicho controlador.

Veamos un ejemplo para acceder al método servicios y/o mapaweb que pertenecen al controlador site. Para ello,, accedemos al fichero **routes.php** la cual contendrá una regla como esta:

$route [ 'servicios' ] = 'site/servicios';
$route [ 'mapaweb' ] = 'site/mapaweb';

En nuestra página **cabecera.php**, usando la función anchor() del helper URL, creamos un enlace a la página de servicios de la siguiente forma:

<?php echo anchor ( 'servicios' , 'Servicios' ) ?>

Así se genera el enlace a la página correspondiente:

<a href="http://localhost/proyecto/index.php/servicios">Servicios</a>

De esta forma podemos mapear cualquier página a la ruta que nosotros indiquemos.

Por ahora no vamos a entrar en más detalles respecto al mapeo de rutas. Sin embargo, es interesante conocer esta funcionalidad. Además, debemos tener en cuenta la dos rutas reservadas por defecto: **default_controller** y **404_override**.

$route [ 'default_controller' ] = 'libros';

$route['404_override'] = '';

La propiedad **default_controller** le dice a CodeIgniter qué controlador debe cargar si no se identifica ninguno en la URL. Por simplicidad vamos a dejar esa configuración por defecto y posteriormente modificaremos esta propiedad para que siempre cargue el controlador libros por defecto.

La propiedad **404_override** indica el controlador que se debería cargar si no se encuentra el controlador solicitado o la ruta es incorrecta. Esto anulará a la página por defecto del error 404 aunque no afectará a la función **show_404()**, que continuará cargando el archivo **error_404.php** por defecto en **application/errors/error_404.php**.

results matching ""

    No results matching ""