CodeTändningsvägar: URL Routning med exempel
⚡ Smart sammanfattning
Codeigniter URL Ruttkartor a URL till en kontroller och metod, med en valfri parameter. Rutter definieras i routes.php, så en ren URL Precis som contacts/edit/1 körs redigeringsmetoden i Contacts-kontrollanten, som laddar sidhuvud-, innehålls- och sidfotsvyer.

Vad är CodeTändningsvägar?
Rutterna ansvarar för att svara på URL förfrågningar. Routningen matchar URL till de fördefinierade rutterna. Om ingen ruttmatchning hittas, CodeIgniter utlöser ett undantag för att sidan inte hittades.
Rutter i CodeTändämnen definieras med hjälp av formeln nedan:
example.com/Controller/Method/Parameter/
Här:
- Styrenheten är mappad till det styrenhetsnamn som ska svara på URL.
- Metoden mappas till den metod i kontrollenheten som ska svara på URI-begäran.
- Parameter – detta avsnitt är valfritt.
CodeExempel på tändningsrutter
Låt oss nu titta på ett praktiskt URL routing in Codeigniter exempel. Tänk på följande URL: http://localhost:3000/contacts/edit/1
Här:
- Namnet på den kontrollant som svarar på ovanstående URL är "kontakter".
- Metoden i controllerklassen Contacts är ”edit”.
- Metoden redigering accepterar en parameter. I vårt exempel skickas värdet "1" till metoden.
Här är en kort bakgrund av vad vi planerar att göra:
- Rutthantering – routing svarar på URL förfrågningar. CodeTändningsdragningen matchar URL till de fördefinierade rutterna. Om ingen ruttmatchning hittas, CodeIgniter utlöser ett undantag för att sidan inte hittades.
- controllers – rutter är länkade till controllers. Controllers sammanfogar modellerna och vyerna. De begär data och affärslogik från modellen och returnerar resultaten via vyns presentation. När en URL har matchats mot en rutt, vidarebefordras den till en offentlig funktion i en kontrollant som interagerar med datakällan och affärslogiken och returnerar vyn.
- Visningar – synpunkter ansvarar för presentationen. En vy är vanligtvis en kombination av HTML, CSS och JavaScriptDenna del ansvarar för att visa webbsidan för användaren. Vanligtvis hämtas de visade uppgifterna från databasen eller en annan datakälla.
För att lära oss hur man implementerar rutter i ett verkligt projekt antar vi att vi skapar en applikation för att hantera kontaktuppgifter. Följande tabell visar URLs vi kommer att arbeta med.
| S / N | URL | Rutt | Regulator | Metod |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | Välkommen | index |
| 2 | /kontakter | $route['kontakter'] | Kontakt | index |
| 3 | /kontakter/skapa | $route['skapa'] | Kontakt | skapa |
| 4 | /contacts/edit/id | $route['edit/:id'] | Kontakt | redigera |
| 5 | /contacts/update/id | $route['update/:id'] | Kontakt | uppdatering |
| 6 | /contacts/delete/id | $route['delete/:id'] | Kontakt | radera |
Vi kommer att skapa rutter för vår applikation baserat på tabellen ovan. Vi har definierat URLs, den CodeIgniter-rutten och mappade dem till respektive kontroll- och metodnamn.
Skapa URL Routning för applikationen
Låt oss skapa Codeigniter URL routing för vårt handledningsprojekt. Öppna application/config/routes.php och modifiera rutterna så att de matchar följande:
$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;
Här:
- $route['default_controller'] = 'välkommen'; definierar standardkontrollern Välkommen.
- $route['contacts'] = 'contacts'; definierar en kontaktrutt som anropar indexmetoden i Contacts-kontrollanten.
- $route['create'] = 'contacts/create'; definierar en rutt create som pekar till Contacts-kontrollanten och anropar create-metoden.
- $route['edit/:id'] = 'contacts/edit'; definierar en ruttredigering som accepterar parametern id och pekar på redigeringsmetoden i Contacts-kontrollanten.
- $route['update/:id'] = 'contacts/update'; definierar en ruttuppdatering som accepterar parametern id och pekar på uppdateringsmetoden i Contacts-klassen.
- $route['delete/:id'] = 'kontakter/delete'; definierar en ruttdelete som accepterar parametern id och pekar på delete-metoden i Kontakter-kontrollanten.
Följande tabell visar respektive URLhärledda från de ovan definierade rutterna:
| S / N | Rutt | Motsvarande URL |
|---|---|---|
| 1 | $route['default_controller'] = 'välkommen'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'kontakter'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'kontakter/skapa'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'kontakter/redigera'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'kontakter/uppdatering'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'kontakter/radera'; | http://localhost:3000/contacts/delete/1 |
Nu när vi har gått igenom rutterna, låt oss skapa Contacts-kontrollanten som svarar på de åtgärder som anges i rutterna. Skapa en ny fil Contacts.php i application/controllers/Contacts.php och lägg till följande kod:
<?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'); } }
Här:
- class Contacts extends CI_Controller {…} definierar vår controllerklass och utökar CI_Controller-klassen som följer med CodeTändare.
- Metoderna som definierats ovan motsvarar de rutter vi definierade, och de med parametrar som delete accepterar parametern $id.
- Observera att funktionerna laddar tre vyer. Sidhuvudet och sidfoten är gemensamma för alla metoder. Den mellersta vyn är specifik för åtgärden, dvs. delete för delete-funktionen och create för create-funktionen. En annan viktig sak att komma ihåg är att vyerna laddas från underkatalogen kontakter.
CodeIgniter Views
Vi behöver fortfarande ett steg till innan vi kan testa vårt CodeTänd rutter med parametrar i webbläsaren. Låt oss skapa vyerna som motsvarar kontrollmetoderna ovan. Följande bild visar hur applikationen kommer att se ut:
Skapa följande filer i application/views:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Skapa en ny kontaktkatalog i application/views (application/views/contacts) och skapa följande filer i den:
index.php create.php edit.php
Din filstruktur bör vara följande:
Låt oss nu uppdatera header.php-filen:
<!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>
Här:
- HTML-koden ovan laddar Bulma CSS från ett CDN.
Följande är koden för footer.php-filen:
</div> </div> </section> </body> </html>
Låt oss nu lägga till koden för filerna index.php, edit.php och create.php för kontakter:
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>
Du kan spara alla ändringar som har gjorts. Öppna följande URL i din webbläsare: http://localhost:3000/contacts/Du kan klicka på länkarna Ny kontakt och Redigera kontakt och se vad som händer.


