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.

  • ๐Ÿงญ Regla fundamental: Una ruta coincide con una URL a un controlador, mรฉtodo y parรกmetro opcional.
  • ๐Ÿ“ Fรณrmula: El patrรณn es Controlador/Mรฉtodo/Parรกmetro, definido en application/config/routes.php.
  • ๐Ÿ  Ruta predeterminada: default_controller establece la pรกgina de inicio cuando no hay URL Se proporciona el segmento.
  • ๐Ÿ”ข parรกmetros: Una ruta como edit/:id pasa el valor de id al mรฉtodo del controlador.
  • ๐ŸŽ›๏ธ Controlador: Cada ruta se corresponde con un mรฉtodo que carga las vistas correspondientes.
  • ๐Ÿ–ผ๏ธ Opiniones compartidas: Las vistas de encabezado y pie de pรกgina se reutilizan, con una vista central especรญfica para cada acciรณn.
  • โ“ 404 Manejo: Un sin igual URL Genera una excepciรณn de pรกgina no encontrada, que se puede anular con 404_override.

CodeRutas de encendido

ยฟ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:

CodeVista previa de la aplicaciรณn de contactos de Igniter

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:

CodeEstructura de archivos de vistas de Igniter

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.

Preguntas Frecuentes

Defina la ruta con un marcador de posiciรณn como edit/:id y acepte el argumento correspondiente en el mรฉtodo del controlador, por ejemplo edit($id). CodeEl encendedor pasa el URL segmento en ese argumento.

CodeIgniter genera una excepciรณn de pรกgina no encontrada y muestra la pรกgina 404. Puedes configurar 404_override para que apunte a tu propio controlador y muestre una pรกgina de error personalizada.

site_url() construye una URL completa URL desde tu base_url y la ruta, para que los enlaces sigan funcionando si el sitio se mueve o la ruta base cambia. Necesita el URL El programa auxiliar debe cargarse primero.

Sรญ. A partir de un nombre de recurso como contactos, la IA puede generar el รญndice, crear, editar, actualizar y eliminar rutas con mรฉtodos de controlador coincidentes, siguiendo las convenciones REST. Confirme los nombres de los parรกmetros.

Cargar el encabezado y el pie de pรกgina por separado evita repetir el mismo diseรฑo en cada vista de pรกgina. Cada mรฉtodo carga el encabezado compartido, una vista de contenido especรญfica y, a continuaciรณn, el pie de pรกgina compartido.

Resumir este post con: