CodeZündrouten: URL Routing mit Beispiel

⚡ Intelligente Zusammenfassung

CodeZünder URL Routenkarten a URL zu einem Controller und einer Methode, mit einem optionalen Parameter. Routen werden in routes.php definiert, daher ein sauberes URL like contacts/edit/1 ruft die edit-Methode des Contacts-Controllers auf, welche die Header-, Content- und Footer-Ansichten lädt.

  • 🧭 Grundregel: Eine Route entspricht einer URL zu einem Controller, einer Methode und einem optionalen Parameter.
  • 📐 Formel: Das Muster ist Controller/Methode/Parameter, definiert in application/config/routes.php.
  • 🏠 Standardroute: default_controller legt die Startseite fest, wenn kein Controller vorhanden ist. URL Das Segment ist gegeben.
  • 🔢 Parameter: Eine Route wie edit/:id übergibt den ID-Wert an die Controller-Methode.
  • Regler: Jede Route ist einer Methode zugeordnet, die die entsprechenden Ansichten lädt.
  • 🖼️ Gemeinsame Ansichten: Kopf- und Fußzeilenansichten werden wiederverwendet, wobei für jede Aktion eine spezifische mittlere Ansicht verwendet wird.
  • 404 Handhabung: Ein unvergleichliches URL Löst eine PageNotFoundException aus, die mit 404_override überschrieben werden kann.

CodeZündrouten

Was sind CodeZündrouten?

Die Routen sind für die Beantwortung von Anfragen zuständig. URL Anfragen. Das Routing entspricht den Anfragen. URL zu den vordefinierten Routen. Falls keine passende Route gefunden wird, CodeIgniter löst eine „Seite nicht gefunden“-Ausnahme aus.

Routen in CodeZünder werden anhand der folgenden Formel definiert:

example.com/Controller/Method/Parameter/

Hier:

  • Der Controller wird dem Controllernamen zugeordnet, der auf die Anfrage antworten soll. URL.
  • Die Methode wird derjenigen Methode im Controller zugeordnet, die auf die URI-Anfrage antworten soll.
  • Parameter – dieser Abschnitt ist optional.

CodeBeispiel für Zündrouten

Betrachten wir nun ein praktisches URL Routing in CodeZünder Beispiel. Betrachten Sie Folgendes: URL: http://localhost:3000/contacts/edit/1

Hier:

  • Name des Verantwortlichen, der auf die obige Anfrage antwortet URL ist „Kontakte“.
  • Die Methode in der Controller-Klasse Contacts heißt „edit“.
  • Die Methode `edit` akzeptiert einen Parameter. In unserem Beispiel wird der Wert „1“ an die Methode übergeben.

Hier ist ein kurzer Hintergrund unserer geplanten Maßnahmen:

  • Routing – Routing reagiert auf URL Anfragen. CodeDie Zünderführung entspricht der URL zu den vordefinierten Routen. Falls keine passende Route gefunden wird, CodeIgniter löst eine „Seite nicht gefunden“-Ausnahme aus.
  • Regler Routen sind mit Controllern verknüpft. Controller verbinden Modelle und Ansichten. Sie fordern Daten und Geschäftslogik vom Modell an und geben die Ergebnisse über die Darstellung der Ansicht zurück. Sobald ein URL Wenn eine Anfrage einer Route zugeordnet wurde, wird sie an eine öffentliche Controller-Funktion weitergeleitet, die mit der Datenquelle und der Geschäftslogik interagiert und die Ansicht zurückgibt.
  • Aufrufe – Ansichten sind für die Darstellung zuständig. Eine Ansicht ist in der Regel eine Kombination aus HTML, CSS und JavaSkriptDieser Teil ist für die Anzeige der Webseite für den Benutzer zuständig. Typischerweise werden die angezeigten Daten aus der Datenbank oder einer anderen Datenquelle abgerufen.

Um zu lernen, wie man Routen in einem realen Projekt implementiert, gehen wir davon aus, dass wir eine Anwendung zur Verwaltung von Kontaktdaten erstellen. Die folgende Tabelle zeigt die URLmit denen wir zusammenarbeiten werden.

S / N URL Route Controller Methodik
1 / $route['default_controller'] WILLKOMMEN Index
2 / Kontakte $route['Kontakte'] Kontakt Index
3 /Kontakte/Erstellen $route['create'] Kontakt erstellen
4 /contacts/edit/id $route['edit/:id'] Kontakt bearbeiten
5 /contacts/update/id $route['update/:id'] Kontakt Aktualisierung
6 /contacts/delete/id $route['delete/:id'] Kontakt löschen

Wir werden die Routen unserer Anwendung anhand der obigen Tabelle erstellen. Wir haben die URLs, die CodeIgniter-Route und ordnete sie den jeweiligen Controller- und Methodennamen zu.

Bessere URL Routing für die Anwendung

Lasst uns erschaffen CodeZünder URL Routing für unser Tutorial-Projekt. Öffnen Sie application/config/routes.php und ändern Sie die Routen wie folgt:

$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;

Hier:

  • $route['default_controller'] = 'willkommen'; Definiert den Standard-Controller Willkommen.
  • $route['contacts'] = 'contacts'; definiert eine Kontaktroute, die die Indexmethode im Kontaktcontroller aufruft.
  • $route['create'] = 'contacts/create'; definiert eine Route create, die auf den Contacts-Controller verweist und die Methode create aufruft.
  • $route['edit/:id'] = 'contacts/edit'; definiert eine Route edit, die einen Parameter id akzeptiert und auf die edit-Methode des Contacts-Controllers verweist.
  • $route['update/:id'] = 'contacts/update'; definiert eine Routenaktualisierung, die einen Parameter vom Typ id akzeptiert und auf die Aktualisierungsmethode der Klasse Contacts verweist.
  • $route['delete/:id'] = 'contacts/delete'; definiert eine Route delete, die einen Parameter id akzeptiert und auf die delete-Methode des Contacts-Controllers verweist.

Die folgende Tabelle zeigt die jeweiligen URLs abgeleitet von den oben definierten Routen:

S / N Route Dazugehörigen URL
1 $route['default_controller'] = 'willkommen'; http://localhost:3000
2 $route['contacts'] = 'contacts'; http://localhost:3000/contacts
3 $route['create'] = 'contacts/create'; http://localhost:3000/contacts/create
4 $route['edit/:id'] = 'contacts/edit'; http://localhost:3000/contacts/edit/1
5 $route['update/:id'] = 'contacts/update'; http://localhost:3000/contacts/update/1
6 $route['delete/:id'] = 'contacts/delete'; http://localhost:3000/contacts/delete/1

Nachdem wir die Routen behandelt haben, erstellen wir nun den Contacts-Controller, der auf die in den Routen festgelegten Aktionen reagiert. Erstellen Sie eine neue Datei namens Contacts.php im Verzeichnis application/controllers/Contacts.php und fügen Sie folgenden Code hinzu:

<?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');
}
}

Hier:

  • Die Klasse `Contacts` erweitert `CI_Controller` {…}` und definiert unsere Controller-Klasse. Sie erweitert die mitgelieferte Klasse `CI_Controller`. CodeZünder.
  • Die oben definierten Methoden entsprechen den von uns definierten Routen, und diejenigen mit Parametern wie delete akzeptieren einen Parameter vom Typ $id.
  • Beachten Sie, dass die Funktionen drei Ansichten laden. Kopf- und Fußzeile sind für alle Methoden gleich. Die mittlere Ansicht ist aktionsspezifisch, z. B. „Löschen“ für die Löschfunktion und „Erstellen“ für die Erstellungsfunktion. Wichtig ist außerdem, dass die Ansichten aus dem Unterverzeichnis „Kontakte“ geladen werden.

CodeIgniter Views

Wir benötigen noch einen weiteren Schritt, bevor wir unsere testen können. CodeIgniter-Routen mit Parametern im Webbrowser. Erstellen wir nun die Ansichten, die den oben genannten Controller-Methoden entsprechen. Die folgende Abbildung zeigt, wie die Anwendung aussehen wird:

CodeVorschau der Igniter-Kontakte-Anwendung

Erstellen Sie die folgenden Dateien im Verzeichnis application/views:

header.php – this file will contain the contacts app menu and the header
footer.php – this file will contain the application footer

Erstellen Sie im Verzeichnis application/views (application/views/contacts) ein neues Verzeichnis namens contacts und erstellen Sie darin die folgenden Dateien:

index.php
create.php
edit.php

Ihre Dateistruktur sollte wie folgt aussehen:

CodeIgniter-Ansichten-Dateistruktur

Aktualisieren wir nun die Datei 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>

Hier:

  • Der obige HTML-Code lädt Bulma CSS von einem CDN.

Nachfolgend der Code für die Datei footer.php:

</div>
</div>
</section>
</body>
</html>

Fügen wir nun den Code für die Dateien index.php, edit.php und create.php für Kontakte hinzu:

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>

Sie können alle vorgenommenen Änderungen speichern. Öffnen Sie dazu Folgendes: URL in Ihrem Webbrowser: http://localhost:3000/contacts/Sie können auf die Links „Neuer Kontakt“ und „Kontakt bearbeiten“ klicken und sehen, was passiert.

Häufig gestellte Fragen

Definieren Sie die Route mit einem Platzhalter wie edit/:id und akzeptieren Sie das entsprechende Argument in der Controller-Methode, zum Beispiel edit($id). CodeDer Zünder gibt den URL Segment in dieses Argument.

CodeIgniter löst eine „Seite nicht gefunden“-Ausnahme aus und zeigt die 404-Seite an. Sie können `404_override` auf Ihren eigenen Controller verweisen, um stattdessen eine benutzerdefinierte Fehlerseite anzuzeigen.

site_url() erstellt eine vollständige URL Aus Ihrer base_url und der Route, damit Links auch bei einem Umzug der Website oder einer Änderung des Basispfads weiterhin funktionieren. Es benötigt die URL Zuerst muss der Helfer geladen werden.

Ja. Aus einem Ressourcennamen wie „Kontakte“ kann die KI gemäß den REST-Konventionen die Routen zum Indizieren, Erstellen, Bearbeiten, Aktualisieren und Löschen mit den entsprechenden Controller-Methoden generieren. Bitte überprüfen Sie die Parameternamen.

Durch das separate Laden von Kopf- und Fußzeile wird vermieden, dass dasselbe Layout bei jeder Seitenansicht wiederholt wird. Jede Methode lädt zuerst die gemeinsame Kopfzeile, dann eine spezifische Inhaltsansicht und anschließend die gemeinsame Fußzeile.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: