CodeItinéraires d'allumage : URL Routage avec exemple
⚡ Résumé intelligent
Codeallumeur URL Cartes de routage URL à un contrôleur et une méthode, avec un paramètre optionnel. Les routes sont définies dans routes.php, donc un code propre URL comme contacts/edit/1 exécute la méthode d'édition du contrôleur Contacts, qui charge les vues d'en-tête, de contenu et de pied de page.

Quels sont CodeItinéraires Igniter ?
Les itinéraires sont responsables de répondre à URL Les requêtes. Le routage correspond aux requêtes. URL aux itinéraires prédéfinis. Si aucun itinéraire correspondant n'est trouvé, CodeIgniter génère une exception de page introuvable.
Routes dans CodeLes allumeurs sont définis à l'aide de la formule ci-dessous :
example.com/Controller/Method/Parameter/
Ici:
- Le contrôleur est associé au nom du contrôleur qui doit répondre à la requête. URL.
- La méthode est associée à la méthode du contrôleur qui doit répondre à la requête URI.
- Paramètre – cette section est facultative.
CodeExemple de routes Igniter
Examinons maintenant un aspect pratique URL routage dans Codeallumeur Exemple. Prenons l'exemple suivant : URL: http://localhost:3000/contacts/edit/1
Ici:
- Le nom du contrôleur répondant à ce qui précède URL est « contacts ».
- La méthode dans la classe de contrôleur Contacts est « edit ».
- La méthode d'édition accepte un paramètre. Dans notre exemple, la valeur « 1 » est transmise à la méthode.
Voici un bref aperçu de ce que nous prévoyons de faire :
- Routage – le routage répond à URL demandes. CodeLe routage de l'allumeur correspond au URL aux itinéraires prédéfinis. Si aucun itinéraire correspondant n'est trouvé, CodeIgniter génère une exception de page introuvable.
- surchargés Les routes sont liées aux contrôleurs. Les contrôleurs assurent la liaison entre les modèles et les vues. Ils récupèrent les données et la logique métier du modèle et renvoient les résultats via la présentation de la vue. URL Une fois associée à une route, elle est transmise à une fonction publique du contrôleur qui interagit avec la source de données et la logique métier et renvoie la vue.
- Vues – les vues sont responsables de la présentation. Une vue est généralement une combinaison de HTML, CSS et JavascénarioCette partie est chargée d'afficher la page web à l'utilisateur. Généralement, les données affichées proviennent d'une base de données ou d'une autre source de données.
Pour apprendre à implémenter des routes dans un projet concret, nous supposerons que nous créons une application de gestion des coordonnées. Le tableau suivant présente les URLnous allons travailler avec.
| Ratio S / N | URL | Itinéraire | Contrôleur | Méthode |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | Bienvenue | indice |
| 2 | /Contacts | $route['contacts'] | Contacts | indice |
| 3 | /contacts/créer | $route['créer'] | Contacts | créer des |
| 4 | /contacts/modifier/identifiant | $route['edit/:id'] | Contacts | éditer |
| 5 | /contacts/mise à jour/identifiant | $route['update/:id'] | Contacts | Mise à jour |
| 6 | /contacts/supprimer/identifiant | $route['delete/:id'] | Contacts | delete |
Nous allons créer les routes de notre application en nous basant sur le tableau ci-dessus. Nous avons défini les URLs, le CodeRoute Igniter, et les a mappés aux noms de contrôleur et de méthode respectifs.
Nos Boissons URL Routage pour l'application
Créons Codeallumeur URL Pour configurer le routage de notre projet tutoriel, ouvrez le fichier application/config/routes.php et modifiez les routes comme suit :
$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;
Ici:
- $route['default_controller'] = 'bienvenue'; définit le contrôleur par défaut Welcome.
- $route['contacts'] = 'contacts'; définit une route de contacts qui appelle la méthode index dans le contrôleur Contacts.
- $route['create'] = 'contacts/create'; définit une route create qui pointe vers le contrôleur Contacts et appelle la méthode create.
- $route['edit/:id'] = 'contacts/edit'; définit une route d'édition qui accepte un paramètre id et pointe vers la méthode d'édition du contrôleur Contacts.
- $route['update/:id'] = 'contacts/update'; définit une mise à jour de route qui accepte un paramètre id et pointe vers la méthode update de la classe Contacts.
- $route['delete/:id'] = 'contacts/delete'; définit une route delete qui accepte un paramètre id et pointe vers la méthode delete du contrôleur Contacts.
Le tableau suivant présente les résultats respectifs URLs dérivés des itinéraires définis ci-dessus :
| Ratio S / N | Itinéraire | Correspondant URL |
|---|---|---|
| 1 | $route['default_controller'] = 'bienvenue'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'contacts'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'contacts/créer'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'contacts/edit'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'contacts/mise à jour'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'contacts/supprimer'; | http://localhost:3000/contacts/delete/1 |
Maintenant que nous avons abordé les routes, créons le contrôleur Contacts qui répondra aux actions spécifiées dans les routes. Créez un nouveau fichier Contacts.php dans application/controllers/Contacts.php et ajoutez le code suivant :
<?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'); } }
Ici:
- La classe Contacts étend CI_Controller {…} définit notre classe de contrôleur et étend la classe CI_Controller fournie avec CodeAllumeur.
- Les méthodes définies ci-dessus correspondent aux routes que nous avons définies, et celles avec des paramètres comme delete acceptent un paramètre $id.
- Notez que les fonctions chargent trois vues. L'en-tête et le pied de page sont communs à toutes les méthodes. La vue du milieu est spécifique à l'action : « delete » pour la fonction de suppression et « create » pour la fonction de création. Il est également important de noter que les vues sont chargées depuis le sous-répertoire « contacts ».
CodeIgniter Views
Il nous reste encore une étape avant de pouvoir tester notre CodeRoutes Igniter avec paramètres dans le navigateur web. Créons les vues correspondant aux méthodes du contrôleur ci-dessus. L'image suivante illustre l'apparence de l'application :
Créez les fichiers suivants dans application/views :
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Créez un nouveau répertoire « contacts » dans application/views (application/views/contacts) et créez-y les fichiers suivants :
index.php create.php edit.php
La structure de vos fichiers devrait être la suivante :
Mettons maintenant à jour le fichier 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>
Ici:
- Le code HTML ci-dessus charge le CSS de Bulma depuis un CDN.
Voici le code du fichier footer.php :
</div> </div> </section> </body> </html>
Ajoutons maintenant le code des fichiers index.php, edit.php et create.php pour les contacts :
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>
Vous pouvez enregistrer toutes les modifications apportées. Ouvrez le fichier suivant. URL dans votre navigateur Web : http://localhost:3000/contacts/Vous pouvez cliquer sur les liens « Nouveau contact » et « Modifier le contact » pour voir ce qui se passe.


