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.

  • 🧭 Règle fondamentale : Un itinéraire correspond à un URL à un contrôleur, une méthode et un paramètre optionnel.
  • (I.e. Formule: Le modèle est Contrôleur/Méthode/Paramètre, défini dans application/config/routes.php.
  • 🏠 Route par défaut : default_controller définit la page d'accueil lorsqu'aucun URL Le segment est donné.
  • (I.e. Paramètres: Une route telle que edit/:id transmet la valeur de l'identifiant à la méthode du contrôleur.
  • Contrôleur: Chaque route correspond à une méthode qui charge les vues correspondantes.
  • 🖼️ Points de vue partagés : Les vues d'en-tête et de pied de page sont réutilisées, avec une vue centrale spécifique pour chaque action.
  • 404 Manipulation : Un sans égal URL Lève une exception de page introuvable, remplaçable avec 404_override.

CodeRoutes d'allumage

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 :

CodeAperçu de l'application Contacts Igniter

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 :

CodeStructure des fichiers de visualisation d'Igniter

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.

FAQ

Définissez la route avec un espace réservé tel que edit/:id, et acceptez l'argument correspondant dans la méthode du contrôleur, par exemple edit($id). CodeL'allumeur passe le URL segment dans cet argument.

CodeIgniter génère une exception « page introuvable » et affiche la page 404. Vous pouvez configurer 404_override pour qu'il pointe vers votre propre contrôleur afin d'afficher une page d'erreur personnalisée.

site_url() construit une URL complète URL à partir de votre URL de base et de la route, afin que les liens restent fonctionnels si le site est déplacé ou si le chemin de base change. Il en a besoin. URL Le module d'assistance doit être chargé en premier.

Oui. À partir d'un nom de ressource comme « contacts », l'IA peut générer l'index, créer, modifier, mettre à jour et supprimer les routes avec les méthodes de contrôleur correspondantes, conformément aux conventions REST. Veuillez vérifier les noms des paramètres.

Le chargement séparé de l'en-tête et du pied de page évite la répétition de la même mise en page sur chaque page. Chaque méthode charge successivement l'en-tête commun, une vue de contenu spécifique, puis le pied de page commun.

Résumez cet article avec :