CodeIgniter Routes: URL-Routing mit Beispiel

Was sind CodeIgniter-Routen?

Routen sind für die Beantwortung von URL-Anfragen verantwortlich. Beim Routing wird die URL den vordefinierten Routen zugeordnet. Wenn keine Routenübereinstimmung gefunden wird, löst CodeIgniter eine Ausnahme aus, bei der die Seite nicht gefunden wurde.

Routen in CodeIgniter werden mit der folgenden Formel definiert:

example.com/Controller/Method/Parameter/

HIER,

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

Beispiel für CodeIgniter-Routen

Schauen wir uns nun ein praktisches URL-Routing an CodeIgniter Beispiel.

Betrachten Sie Folgendeswing URL http://localhost:3000/contacts/edit/1

HIER,

  • Der Name des Verantwortlichen, der auf die obige URL antwortet, lautet „Kontakte“.
  • Die Methode in der Controller-Klasse Kontakte ist „edit“
  • Die Bearbeitungsmethode akzeptiert einen Parameter. In unserem Beispiel wird der Methode der Wert „1“ übergeben.

Hier ist ein kurzer Hintergrund unserer geplanten Maßnahmen:

  • Routing – Routing ist für die Beantwortung von URL-Anfragen verantwortlich. CodeIgniter Routing ordnet die URL den vordefinierten Routen zu. Wenn keine Routenübereinstimmung gefunden wird, löst CodeIgniter die Ausnahme „Seite nicht gefunden“ aus.
  • Regler – Routen sind mit Controllern verknüpft. Controller kleben die Modelle und Ansichten zusammen. Die Anforderung von Daten/Geschäftslogik aus dem Modell und die Rückgabe der Ergebnisse über die Ansichtspräsentation. Sobald eine URL einer Route in CodeIgniter zugeordnet wurde, wird sie an eine öffentliche Controller-Funktion weitergeleitet, die mit der Datenquelle und der Geschäftslogik interagiert und die Ansicht zurückgibt, die die Ergebnisse anzeigt.
  • Views – Ansichten sind für die Darstellung verantwortlich. Eine Ansicht ist normalerweise eine Kombination aus HTML, CSS und JavaScript. Dies ist der Teil, der für die Anzeige der Webseite für den Benutzer verantwortlich ist. Normalerweise werden die angezeigten Daten aus der Datenbank oder anderen verfügbaren Datenquellen abgerufen.

Um zu lernen, wie man Router in einem realen Projekt implementiert, gehen wir davon aus, dass wir eine Anwendung zur Kontaktverwaltung erstellentails. Die folgendenwing Die Tabelle zeigt die URLs, mit denen gearbeitet wird.

S / N URL Straße Controller Versandart
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 basierend auf der obigen Tabelle erstellen. Wir haben die URLs und die CodeIgniter-Route definiert und sie den jeweiligen Controller- und Methodennamen zugeordnet.

URL-Routing für die Anwendung erstellen

Lassen Sie uns CodeIgniter URL Routing für unser Tutorial-Projekt erstellen

Öffnen Sie application/config/routes.php

Ändern Sie die Routen entsprechend dem Folgendenwing

$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 Routenerstellung, die auf den Kontaktcontroller verweist und die Erstellungsmethode aufruft.
  • $route['edit/:id'] = 'contacts/edit'; Definiert eine Routenbearbeitung, die den Parameter id akzeptiert und auf die Bearbeitungsmethode des Kontaktcontrollers verweist
  • $route['update/:id'] = 'contacts/update'; Definiert eine Routenaktualisierung, die den Parameter id akzeptiert und auf die Update-Methode der Contacts-Klasse verweist.
  • $route['delete/:id'] = 'contacts/delete'; Definiert eine Route delete, die den Parameter id akzeptiert und auf die Löschmethode des Contacts-Controllers verweist.

Die folgendenwing Die Tabelle zeigt die jeweiligen URLs, die von den oben definierten Routen abgeleitet wurden

S / N Straße Entsprechende 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 nun die Routen behandelt haben, erstellen wir den Kontakt-Controller, der auf die in den Routen angegebenen Aktionen reagiert.

Erstellen Sie in CodeIgniter eine neue Routendatei als Contacts.php in application/controllers/Contacts.php

Fügen Sie Folgendes hinzuwing Code

<?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,

  • Klassenkontakte erweitert CI_Controller {..} definiert unsere Controller-Klasse und erweitert die CI_Controller-Klasse, die mit CodeIgniter geliefert wird.
  • Die oben definierten Methoden entsprechen den von uns definierten Routen und diejenigen mit Parametern wie „delete“ akzeptieren den Parameter „$id“.
  • Beachten Sie, dass die Funktionen drei (3) Ansichten laden. Die Kopf- und Fußzeile sind für alle Methoden gleich. Die mittlere Ansicht ist sehr spezifisch für die Aktion, z. B. „Löschen“ für die Funktion „Löschen“, „Erstellen einer Ansicht zum Erstellen einer Funktion“ usw. Ein weiterer wichtiger Punkt, den Sie beachten sollten, ist, dass die Ansichten aus dem Unterverzeichnis „Kontakte“ geladen werden.

CodeIgniter-Ansichten

Wir müssen noch einen weiteren Schritt machen, bevor wir unsere CodeIgniter-Routen mit Parametern im Webbrowser testen können. Lassen Sie uns die entsprechenden Ansichten zu den oben genannten Controller-Methoden erstellen.

Die folgendenwing Das Bild zeigt, wie Ihre Bewerbung aussehen wird

CodeIgniter-Ansichten

Erstellen Sie Folgendeswing Dateien in Anwendung/Ansichten

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

Erstellen Sie ein neues Kontaktverzeichnis in den Ansichten application/views/contacts

Erstellen Sie Folgendeswing Dateien darin

index.php
create.php
edit.php

Ihre Dateistruktur sollte wie folgt aussehen

CodeIgniter-Ansichten

Lassen Sie uns nun die header.php aktualisieren

<!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 Burma-CSS aus einem CDN-Netzwerk.

Die folgendenwing ist der Code für die 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 das Folgendewing URL in Ihrem Webbrowser http://localhost:3000/contacts/

Sie können auf die Links „Neuer Kontakt“ und „Kontakt bearbeiten“ klicken und sehen, was passiert

Zusammenfassung

  • Routen in CI sind für die Beantwortung von URL-Anfragen verantwortlich. Beim Routing wird die URL den vordefinierten Routen zugeordnet. Wenn keine Übereinstimmung mit der CodeIgniter-Route gefunden wird, löst CodeIgniter eine Ausnahme aus, bei der die Seite nicht gefunden wurde.
  • CI Routing ist für die Beantwortung von URL-Anfragen verantwortlich. Beim Routing wird die URL den vordefinierten Routen zugeordnet.
  • Controller kleben die Modelle und Ansichten zusammen. Die Anforderung von Daten/Geschäftslogik aus dem Modell und die Rückgabe der Ergebnisse über die Ansichtspräsentation.
  • Ansichten sind für die Darstellung verantwortlich. Eine Ansicht ist normalerweise eine Kombination aus HTML, CSS und JavaScript.
  • In diesem Tutorial haben wir gelernt, wie man Routen in CodeIgniter für eine reale Beispielanwendung erstellt, und haben die Grundlagen des Routings behandelt, die Sie kennen müssen, um mit der Entwicklung von CodeIgniter beginnen zu können.