CodeRutas de encendido: URL Enrutamiento con ejemplo
โก Resumen inteligente
CodeEncendedor URL Mapas de enrutamiento a URL a un controlador y mรฉtodo, con un parรกmetro opcional. Las rutas se definen en routes.php, por lo que una ruta limpia URL El mรฉtodo like contacts/edit/1 ejecuta el mรฉtodo edit del controlador Contacts, que carga las vistas de encabezado, contenido y pie de pรกgina.

ยฟQuรฉ son CodeยฟRutas de encendido?
Las rutas son responsables de responder a URL solicitudes. El enrutamiento coincide con el URL a las rutas predefinidas. Si no se encuentra ninguna coincidencia de ruta, CodeIgniter genera una excepciรณn de pรกgina no encontrada.
Rutas en CodeLos ignitores se definen mediante la siguiente fรณrmula:
example.com/Controller/Method/Parameter/
Aquรญ:
- El controlador se asigna al nombre del controlador que debe responder a la URL.
- El mรฉtodo se asigna al mรฉtodo del controlador que debe responder a la solicitud URI.
- Parรกmetro: esta secciรณn es opcional.
CodeEjemplo de rutas de Igniter
Veamos ahora un ejemplo prรกctico. URL enrutamiento en CodeEncendedor Ejemplo. Considere lo siguiente URL: http://localhost:3000/contacts/edit/1
Aquรญ:
- El nombre del controlador que responde a lo anterior URL es โcontactosโ.
- El mรฉtodo en la clase del controlador Contacts es โeditโ.
- El mรฉtodo de ediciรณn acepta un parรกmetro. En nuestro ejemplo, se le pasa el valor โ1โ.
Aquรญ hay una breve descripciรณn de lo que planeamos hacer:
- enrutamiento โ el enrutamiento responde a URL peticiones. CodeEl enrutamiento de Igniter coincide con el URL a 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 unen los modelos y las vistas. Solicitan datos y lรณgica de negocio al modelo y devuelven los resultados a travรฉs de la presentaciรณn de la vista. Una vez que URL Una vez que se ha asociado con una ruta, se reenvรญa a una funciรณn pรบblica del controlador que interactรบa con la fuente de datos y la lรณgica de negocio y devuelve la vista.
- Vistas โ las vistas son responsables de la presentaciรณn. Una vista suele ser una combinaciรณn de HTML, CSS y JavaScriptEsta secciรณn se encarga de mostrar la pรกgina web al usuario. Normalmente, los datos que se muestran se obtienen de la base de datos o de otra fuente de datos.
Para aprender cรณmo implementar rutas en un proyecto del mundo real, asumimos que estamos creando una aplicaciรณn para administrar detalles de contacto. La siguiente tabla muestra la URLCon los que trabajaremos.
| S / N | URL | Ruta | Control | Mรฉtodo |
|---|---|---|---|---|
| 1 | / | $ruta['default_controller'] | Bienvenido | รญndice |
| 2 | / contactos | $ruta['contactos'] | Contacto | รญndice |
| 3 | /contactos/crear | $ruta['crear'] | Contacto | Para crear |
| 4 | /contactos/editar/id | $ruta['editar/:id'] | Contacto | ediciรณn |
| 5 | /contactos/actualizaciรณn/id | $ruta['actualizaciรณn/:id'] | Contacto | actualizaciรณn |
| 6 | /contactos/eliminar/id | $ruta['eliminar/:id'] | Contacto | eliminar |
Crearemos las rutas de nuestra aplicaciรณn basรกndonos en la tabla anterior. Hemos definido la URLs, el CodeEnrutamiento de Igniter, y los asignรฉ a los nombres de controlador y mรฉtodo correspondientes.
Creamos URL Enrutamiento para la aplicaciรณn
Vamos a crear CodeEncendedor URL Enrutamiento para nuestro proyecto tutorial. Abra application/config/routes.php y modifique 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.
- $route['contacts'] = 'contacts'; define una ruta de contactos que llama al mรฉtodo index en el controlador Contacts.
- $route['create'] = 'contacts/create'; define una ruta create que apunta al controlador Contacts y llama al mรฉtodo create.
- $route['edit/:id'] = 'contacts/edit'; define una ruta edit que acepta un parรกmetro id y apunta al mรฉtodo edit del controlador Contacts.
- $route['update/:id'] = 'contacts/update'; define una ruta de actualizaciรณn que acepta un parรกmetro de id y apunta al mรฉtodo de actualizaciรณn de la clase Contacts.
- $route['delete/:id'] = 'contacts/delete'; define una ruta delete que acepta un parรกmetro id y apunta al mรฉtodo delete del controlador Contacts.
La siguiente tabla muestra los respectivos URLs derivadas de las rutas definidas anteriormente:
| S / N | Ruta | Correspondiente URL |
|---|---|---|
| 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, vamos a crear el controlador de Contactos que responderรก a las acciones especificadas en las rutas. Crea un nuevo archivo Contacts.php en application/controllers/Contacts.php y agrega 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รญ:
- La clase Contacts extiende CI_Controller {โฆ} define nuestra clase de controlador y extiende la clase CI_Controller que viene con CodeEncendedor.
- Los mรฉtodos definidos anteriormente corresponden a las rutas que definimos, y aquellos con parรกmetros como delete aceptan un parรกmetro de $id.
- Observa que las funciones cargan tres vistas. El encabezado y el pie de pรกgina son comunes a todos los mรฉtodos. La vista central es especรญfica para cada acciรณn: eliminar para la funciรณn de eliminaciรณn y crear para la funciรณn de creaciรณn. Otro aspecto importante a tener en cuenta es que las vistas se cargan desde el subdirectorio de contactos.
CodeVistas de Igniter
Todavรญa necesitamos un paso mรกs antes de poder probar nuestro CodeRutas de Igniter con parรกmetros en el navegador web. Creemos las vistas correspondientes a los mรฉtodos del controlador mencionados anteriormente. La siguiente imagen muestra el aspecto que tendrรก la aplicaciรณn:
Cree los siguientes archivos en application/views:
header.php โ this file will contain the contacts app menu and the header footer.php โ this file will contain the application footer
Crea un nuevo directorio llamado contacts dentro de application/views (application/views/contacts) y crea los siguientes archivos dentro de รฉl:
index.php create.php edit.php
La estructura de sus archivos debe ser la siguiente:
Ahora vamos a actualizar el archivo 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 el CSS de Bulma desde una CDN.
El siguiente es el cรณdigo del archivo footer.php:
</div> </div> </section> </body> </html>
Ahora vamos a aรฑadir 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>
Puedes guardar todos los cambios que se hayan realizado. Abre lo siguiente URL en su navegador web: http://localhost:3000/contacts/Puedes hacer clic en los enlaces "Nuevo contacto" y "Editar contacto" para ver quรฉ sucede.


