CodeIgniter-ruter: URL-ruting med eksempel
Hva er CodeIgniter-ruter?
Ruter er ansvarlige for รฅ svare pรฅ URL-forespรธrsler. Ruting matcher URL-en til de forhรฅndsdefinerte rutene. Hvis ingen rutematch blir funnet, kaster CodeIgniter en side som ikke ble funnet et unntak.
Ruter i CodeIgniter er definert ved hjelp av formelen nedenfor:
example.com/Controller/Method/Parameter/
HER,
- Kontroller - er tilordnet kontrollernavnet som skal svare pรฅ URL-en.
- Metode โ er tilordnet metoden i kontrolleren som skal svare pรฅ URI-forespรธrselen.
- Parameter โ denne delen er valgfri.
CodeIgniter-ruter eksempel
La oss nรฅ se pรฅ en praktisk URL-ruting inn CodeIgniter eksempel.
Tenk pรฅ fรธlgende URL http://localhost:3000/contacts/edit/1
HER,
- Navnet pรฅ kontrolleren som svarer pรฅ URL-en ovenfor er "kontakter"
- Metoden i kontrollerklassen Kontakter er "edit"
- Redigeringsmetoden godtar en parameter. Nรฅr det gjelder vรฅrt eksempel, overfรธres verdien "1" til metoden.
Her er en kort bakgrunn for hva vi planlegger รฅ gjรธre:
- Routing โ ruting er ansvarlig for รฅ svare pรฅ URL-forespรธrsler. CodeIgniter Routing matcher URL-en til de forhรฅndsdefinerte rutene. Hvis ikke rutematch blir funnet, kaster CodeIgniter et unntak fra siden ikke funnet.
- Controllers โ ruter er knyttet til kontrollere. Kontrollere limer modellene og visningene sammen. Forespรธrselen om data / forretningslogikk fra modellen og returner resultatene via visningspresentasjonen. Nรฅr en URL har blitt matchet med en rute i CodeIgniter, videresendes den til en offentlig kontrollfunksjon som samhandler med datakilden, forretningslogikken og returnerer visningen som viser resultatene.
- Visninger โ synspunkter er ansvarlige for presentasjon. En visning er vanligvis en kombinasjon av HTML, CSS og JavaScript. Dette er den delen som er ansvarlig for รฅ vise nettsiden til brukeren. Vanligvis hentes dataene som vises vanligvis fra databasen eller andre tilgjengelige datakilder.
For รฅ lรฆre hvordan du implementerer rutere pรฅ et prosjekt i den virkelige verden, antar vi at vi lager et program for รฅ administrere kontaktdetaljer. Tabellen nedenfor viser nettadressene som skal jobbes med.
| S / N | URL | Rute | controller | Metode |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | Velkommen | indeks |
| 2 | /kontakter | $route['kontakter'] | Kontakter | indeks |
| 3 | /kontakter/opprett | $route['skape'] | Kontakter | skape |
| 4 | /contacts/edit/id | $route['edit/:id'] | Kontakter | redigere |
| 5 | /contacts/update/id | $route['update/:id'] | Kontakter | Oppdater |
| 6 | /contacts/delete/id | $route['delete/:id'] | Kontakter | slette |
Vi vil lage rutene for applikasjonen vรฅr basert pรฅ tabellen ovenfor. Vi har definert URL-ene, CodeIgniter-ruten, og kartlagt dem til de respektive kontrollerne og metodenavnene.
Opprette URL-ruting for applikasjonen
La oss lage CodeIgniter URL-ruting for opplรฆringsprosjektet vรฅrt
ร pne application/config/routes.php
Endre rutene slik at de samsvarer med fรธlgende
$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;
HER,
- $route['default_controller'] = 'velkommen'; definerer standardkontrolleren Velkommen.
- $route['contacts'] = 'kontakter'; definerer en kontaktrute som kaller indeksmetoden i kontaktkontrolleren
- $route['create'] = 'kontakter/opprett'; definerer en ruteoppretting som peker til kontaktkontrolleren og kaller opprettingsmetoden.
- $route['edit/:id'] = 'kontakter/rediger'; definerer en ruteredigering som godtar parameteren id og peker til redigeringsmetoden til kontaktkontrolleren
- $route['update/:id'] = 'kontakter/oppdatering'; definerer en ruteoppdatering som aksepterer parameteren id og peker pรฅ oppdateringsmetoden til klassen Kontakter.
- $route['delete/:id'] = 'kontakter/slett'; definerer en rutesletting som aksepterer parameteren id og peker pรฅ slettemetoden til kontaktkontrolleren.
Tabellen nedenfor viser de respektive URL-ene som er avledet fra de ovenfor definerte rutene
| S / N | Rute | Tilsvarende URL |
|---|---|---|
| 1 | $route['default_controller'] = 'velkommen'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'kontakter'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'kontakter/opprett'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'kontakter/rediger'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'kontakter/oppdatering'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'kontakter/slett'; | http://localhost:3000/contacts/delete/1 |
Nรฅ som vi har dekket rutene, la oss lage kontaktkontrolleren som vil svare pรฅ handlingene spesifisert i rutene.
Opprett en ny rutefil i CodeIgniter som Contacts.php i application/controllers/Contacts.php
Legg til fรธlgende kode
<?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');
}
}
HER,
- Klassekontakter utvider CI_Controller {..} definerer kontrollerklassen vรฅr og utvider CI_Controller-klassen som fรธlger med CodeIgniter.
- Metodene definert ovenfor tilsvarer rutene vi definerte, og de med parametere som slett godtar en parameter pรฅ $id
- Legg merke til at funksjonene laster inn tre (3) visninger. Topptekst og bunntekst er felles for alle metoder. Den midterste visningen er veldig spesifikk for handlingen, dvs. slett for slettefunksjon opprette en visning for รฅ lage en funksjon osv. En annen viktig ting รฅ huske er at visningene lastes fra underkatalogen for kontakter.
CodeIgniter-visninger
Vi mรฅ fortsatt ta ett steg til fรธr vi kan teste vรฅre CodeIgniter-ruter med parametere i nettleseren. La oss lage de tilsvarende visningene til kontrollmetodene ovenfor.
Fรธlgende bilde viser hvordan applikasjonen din vil se ut
Opprett fรธlgende filer i applikasjon/visninger
header.php โ this file will contain contacts app menu and the header footer.php โ this files will contain the application footer.
Opprett en ny katalog med kontakter i visningsprogram/visninger/kontakter
Lag fรธlgende filer inne
index.php create.php edit.php
Filstrukturen din skal vรฆre som fรธlger
La oss nรฅ oppdatere 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>
HER,
- HTML-koden ovenfor laster Burma CSS fra et CDN-nettverk.
Fรธlgende er koden for footer.php
</div>
</div>
</section>
</body>
</html>
La oss nรฅ legge til koden for filene index.php, edit.php og create.php for 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 lagre alle endringene som er gjort.
ร
pne fรธlgende URL i nettleseren din http://localhost:3000/contacts/
du kan klikke pรฅ koblingene Ny kontakt og Rediger kontakt og se hva som skjer
Sammendrag
- Ruter i CI er ansvarlige for รฅ svare pรฅ URL-forespรธrsler. Ruting matcher URL-en til de forhรฅndsdefinerte rutene. Hvis ingen CodeIgniter Route-match blir funnet, kaster CodeIgniter en side som ikke ble funnet et unntak.
- CI Routing er ansvarlig for รฅ svare pรฅ URL-forespรธrsler. Ruting matcher URL-en til de forhรฅndsdefinerte rutene.
- Kontrollere limer modellene og visningene sammen. Forespรธrselen om data / forretningslogikk fra modellen og returner resultatene via visningspresentasjonen.
- Synspunkter er ansvarlig for presentasjon. En visning er vanligvis en kombinasjon av HTML, CSS og JavaManus.
- I denne opplรฆringen har vi lรฆrt hvordan du lager ruter i CodeIgniter for et eksempelprogram i den virkelige verden og dekket det grunnleggende om ruting som du trenger รฅ vite for รฅ komme i gang med รฅ utvikle CodeIgniter.


