Rutas CodeIgniter: enrutamiento de URL con ejemplo
ยฟQuรฉ son las rutas CodeIgniter?
Las rutas son responsables de responder a las solicitudes de URL. El enrutamiento hace coincidir la URL con las rutas predefinidas. Si no se encuentra ninguna coincidencia de ruta, CodeIgniter genera una excepciรณn de pรกgina no encontrada.
Las rutas en CodeIgniter se definen utilizando la siguiente fรณrmula:
example.com/Controller/Method/Parameter/
AQUร,
- Controlador: se asigna al nombre del controlador que debe responder a la URL.
- Mรฉtodo: se asigna al mรฉtodo en el controlador que debe responder a la solicitud de URI.
- Parรกmetro: esta secciรณn es opcional.
Ejemplo de rutas de CodeIgniter
Veamos ahora un enrutamiento de URL prรกctico en CodeIgniter ejemplo.
Considere la siguiente URL http://localhost:3000/contacts/edit/1
AQUร,
- El nombre del responsable del tratamiento que responde a la URL anterior es โcontactosโ
- El mรฉtodo en la clase de controlador Contactos es "editar"
- El mรฉtodo de ediciรณn acepta un parรกmetro. En el caso de nuestro ejemplo, el valor "1" se pasa al mรฉtodo.
Aquรญ hay una breve descripciรณn de lo que planeamos hacer:
- enrutamiento โ el enrutamiento es responsable de responder a las solicitudes de URL. CodeIgniter Routing hace coincidir la URL con las rutas predefinidas. Si no se encuentra ninguna coincidencia de ruta, CodeIgniter genera una excepciรณn de pรกgina no encontrada.
- Control โ las rutas estรกn vinculadas a los controladores. Los controladores pegan los modelos y las vistas. La solicitud de datos/lรณgica de negocios del modelo y devolver los resultados a travรฉs de la presentaciรณn de vistas. Una vez que una URL se ha asociado con una ruta en CodeIgniter, se reenvรญa a una funciรณn pรบblica del controlador que interactรบa con la fuente de datos, la lรณgica empresarial y devuelve la vista que muestra los resultados.
- Vistas โ las vistas son responsables de la presentaciรณn. Una vista suele ser una combinaciรณn de HTML, CSS y JavaScriptEsta es la parte responsable de mostrar la pรกgina web al usuario. Normalmente, los datos que se muestran se obtienen de la base de datos o de cualquier otra fuente de datos disponible.
Para aprender a implementar enrutadores en un proyecto del mundo real, supondremos que estamos creando una aplicaciรณn para administrar detalles de contacto. La siguiente tabla muestra las URL con las que trabajaremos.
| S / N | URL | Ruta | Control | Mรฉtodo |
|---|---|---|---|---|
| 1 | / | $ruta['default_controller'] | Bienvenidos | รญndice |
| 2 | / contactos | $ruta['contactos'] | Contactos | รญndice |
| 3 | /contactos/crear | $ruta['crear'] | Contactos | Para crear |
| 4 | /contactos/editar/id | $ruta['editar/:id'] | Contactos | ediciรณn |
| 5 | /contactos/actualizaciรณn/id | $ruta['actualizaciรณn/:id'] | Contactos | actualizaciรณn |
| 6 | /contactos/eliminar/id | $ruta['eliminar/:id'] | Contactos | eliminar |
Crearemos las rutas de nuestra aplicaciรณn basรกndonos en la tabla anterior. Hemos definido las URL, la ruta de CodeIgniter y las hemos asignado a los respectivos nombres de controlador y mรฉtodo.
Crear enrutamiento URL para la aplicaciรณn
Creemos el enrutamiento de URL CodeIgniter para nuestro proyecto tutorial.
Abra aplicaciรณn/config/routes.php
Modificar las rutas para que coincidan con lo siguiente
$route['default_controller'] = 'welcome'; $route['contacts'] = 'contacts'; $route['create'] = 'contacts/create'; $route['edit/:id'] = 'contacts/edit'; $route['update/:id'] = 'contacts/update'; $route['delete/:id'] = 'contacts/delete'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
AQUร,
- $ruta['default_controller'] = 'bienvenido'; define el controlador predeterminado Bienvenido.
- $ruta['contactos'] = 'contactos'; define una ruta de contactos que llama al mรฉtodo de รญndice en el controlador de contactos
- $ruta['crear'] = 'contactos/crear'; define una ruta de creaciรณn que apunta al controlador de Contactos y llama al mรฉtodo de creaciรณn.
- $ruta['edit/:id'] = 'contactos/editar'; define una ediciรณn de ruta que acepta un parรกmetro de id y apunta al mรฉtodo de ediciรณn del controlador de contactos
- $ruta['actualizaciรณn/:id'] = 'contactos/actualizaciรณn'; define una actualizaciรณn de ruta que acepta un parรกmetro de id y apunta al mรฉtodo de actualizaciรณn de la clase Contactos.
- $ruta['delete/:id'] = 'contactos/eliminar'; define una eliminaciรณn de ruta que acepta un parรกmetro de id y apunta al mรฉtodo de eliminaciรณn del controlador de Contactos.
La siguiente tabla muestra las respectivas URL derivadas de las rutas definidas anteriormente.
| S / N | Ruta | URL correspondiente |
|---|---|---|
| 1 | $ruta['default_controller'] = 'bienvenido'; | http://localhost:3000 |
| 2 | $ruta['contactos'] = 'contactos'; | http://localhost:3000/contacts |
| 3 | $ruta['crear'] = 'contactos/crear'; | http://localhost:3000/contacts/create |
| 4 | $ruta['edit/:id'] = 'contactos/editar'; | http://localhost:3000/contacts/edit/1 |
| 5 | $ruta['actualizaciรณn/:id'] = 'contactos/actualizaciรณn'; | http://localhost:3000/contacts/update/1 |
| 6 | $ruta['delete/:id'] = 'contactos/eliminar'; | http://localhost:3000/contacts/delete/1 |
Ahora que hemos cubierto las rutas, creemos el controlador de Contactos que responderรก a las acciones especificadas en las rutas.
Cree un nuevo archivo de ruta en CodeIgniter como Contacts.php en application/controllers/Contacts.php
Aรฑade el siguiente cรณdigo
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Contacts extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('url');
}
public function index() {
$this->load->view('header');
$this->load->view('contacts/index');
$this->load->view('footer');
}
public function create() {
$this->load->view('header');
$this->load->view('contacts/create');
$this->load->view('footer');
}
public function edit($id) {
$this->load->view('header');
$this->load->view('contacts/edit');
$this->load->view('footer');
}
public function update($id) {
$this->load->view('header');
$this->load->view('contacts/update');
$this->load->view('footer');
}
public function delete($id) {
$this->load->view('header');
$this->load->view('contacts/delete');
$this->load->view('footer');
}
}
AQUร,
- Los contactos de clase extienden CI_Controller {..} define nuestra clase de controlador y extiende la clase CI_Controller que viene con CodeIgniter.
- Los mรฉtodos definidos anteriormente corresponden a las rutas que definimos y aquellos con parรกmetros como eliminar aceptan un parรกmetro de $id
- Observe que las funciones cargan tres (3) vistas. El encabezado y el pie de pรกgina son comunes para todos los mรฉtodos. La vista intermedia es muy especรญfica de la acciรณn, es decir, eliminar para eliminar la funciรณn, crear una vista para crear una funciรณn, etc. Otra cosa importante para recordar es que las vistas se cargan desde el subdirectorio de contactos.
Vistas de CodeIgniter
Todavรญa tenemos que dar un paso mรกs antes de poder probar nuestras rutas CodeIgniter con parรกmetros en el navegador web. Creemos las vistas correspondientes a los mรฉtodos de controlador anteriores.
La siguiente imagen muestra cรณmo se verรก su aplicaciรณn
Cree los siguientes archivos en application/views
header.php โ this file will contain contacts app menu and the header footer.php โ this files will contain the application footer.
Cree un nuevo directorio de contactos en la aplicaciรณn de vistas/vistas/contactos
Crea los siguientes archivos dentro
index.php create.php edit.php
La estructura de su archivo debe ser la siguiente
Actualicemos ahora el header.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CodeIgniter Routes</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">CI Contacts v1</h1>
<h2 class="subtitle">CodeIgniter contacts management app</h2>
<div class="columns">
<div class="column is-one-quarter">
<aside class="menu">
<p class="menu-label">
General
</p>
<ul class="menu-list">
<li><a class="is-active" href="#">Dashboard</a></li>
<li><a href="<?=site_url('contacts/create')?>">New Contact</a></li>
<li><a href="<?=site_url('contacts/edit/1')?>">Edit Contacts</a></li>
</ul>
<p class="menu-label">
Settings
</p>
<ul class="menu-list">
<li><a href="#">SMS</a></li>
<li><a href="#">Email</a></li>
</ul>
</aside>
</div>
AQUร,
- El cรณdigo HTML anterior carga CSS de Birmania desde una red CDN.
El siguiente es el cรณdigo para footer.php
</div>
</div>
</section>
</body>
</html>
Ahora agreguemos el cรณdigo para los archivos index.php, edit.php y create.php para contactos.
index.php <div class="column">Index content goes here...</div> edit.php <div class="column">Edit content goes here...</div> create.php <div class="column">Create content goes here...</div>
Puede guardar todos los cambios que se han realizado.
Abra la siguiente URL en su navegador web http://localhost:3000/contacts/
puede hacer clic en los enlaces Nuevo contacto y Editar contacto y ver quรฉ sucede
Resumen
- Las rutas en CI son responsables de responder a las solicitudes de URL. El enrutamiento hace coincidir la URL con las rutas predefinidas. Si no se encuentra ninguna coincidencia de ruta de CodeIgniter, CodeIgniter genera una excepciรณn de pรกgina no encontrada.
- CI Routing es responsable de responder a las solicitudes de URL. El enrutamiento hace coincidir la URL con las rutas predefinidas.
- Los controladores pegan los modelos y las vistas. La solicitud de datos/lรณgica de negocios del modelo y devolver los resultados a travรฉs de la presentaciรณn de vistas.
- Las vistas son responsables de la presentaciรณn. Una vista suele ser una combinaciรณn de HTML, CSS y JavaGuiรณn.
- En este tutorial, aprendimos cรณmo crear rutas en CodeIgniter para una aplicaciรณn de ejemplo del mundo real y cubrimos los conceptos bรกsicos de enrutamiento que necesita saber para comenzar a desarrollar CodeIgniter.


