CodeRutas de encendido: URL Enrutamiento con ejemplo

ยฟ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, entonces, 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ร,

  • 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.

CodeEjemplo de rutas de Igniter

Veamos ahora un ejemplo prรกctico. URL Enrutamiento en CodeEncendedor ejemplo.

Considera 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 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 URL peticiones. CodeEl enrutamiento de Igniter coincide con el URL a las rutas predefinidas. Si no se encuentra ninguna coincidencia de ruta, entonces 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. La solicitud de datos/lรณgica de negocio del modelo y la devoluciรณn de los resultados a travรฉs de la presentaciรณn de las vistas. Una vez que URL se ha emparejado con una ruta en CodeEn Igniter, se envรญa a una funciรณn pรบblica del controlador que interactรบa con la fuente de datos, la lรณgica de negocio 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, asumiremos que estamos creando una aplicaciรณn para administrar detalles de contacto. La siguiente tabla muestra la URLs con 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, 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 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 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, 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ร,

  • 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 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.

CodeVistas de Igniter

Todavรญa necesitamos dar un paso mรกs antes de poder probar nuestro CodeRutas de Igniter con parรกmetros en el navegador web. Vamos a crear las vistas correspondientes a los mรฉtodos del controlador mencionados anteriormente.

La siguiente imagen muestra cรณmo se verรก su aplicaciรณn

CodeVistas de Igniter

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

CodeVistas de Igniter

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 lo 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 URL solicitudes. El enrutamiento coincide con el URL a las rutas predefinidas. Si no CodeEntonces se encuentra una coincidencia de ruta de Igniter, CodeIgniter genera una excepciรณn de pรกgina no encontrada.
  • CI Routing es responsable de responder a URL solicitudes. El enrutamiento coincide con el URL a 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, hemos aprendido cรณmo crear rutas en CodeIgniter para una aplicaciรณn de ejemplo del mundo real y cubriรณ los conceptos bรกsicos de enrutamiento que necesitas saber para comenzar a desarrollar.ping CodeEncendedor.

Resumir este post con: