CodeIgniter rute: URL usmjeravanje s primjerom
Što su CodeIgniter rute?
Rute su odgovorne za odgovaranje na URL zahtjeve. Usmjeravanje povezuje URL s unaprijed definiranim rutama. Ako tada nije pronađeno podudaranje rute, CodeIgniter izbacuje iznimku Stranica nije pronađena.
Rute u CodeIgniteru definirane su pomoću formule u nastavku:
example.com/Controller/Method/Parameter/
OVDJE,
- Kontroler - mapiran je na naziv kontrolera koji bi trebao odgovoriti na URL.
- Metoda – preslikava se na metodu u kontroleru koja bi trebala odgovoriti na URI zahtjev.
- Parametar – ovaj odjeljak nije obavezan.
Primjer ruta CodeIgnitera
Pogledajmo sada praktično URL usmjeravanje CodeIgniter primjer.
Razmotrite sljedeći URL http://localhost:3000/contacts/edit/1
OVDJE,
- Naziv kontrolora koji odgovara na gornji URL je "kontakti"
- Metoda u klasi kontrolera Kontakti je “uredi”
- Metoda uređivanja prihvaća parametar. U slučaju našeg primjera, vrijednost "1" prosljeđuje se metodi.
Evo kratke pozadine onoga što planiramo učiniti:
- Usmjeravanje – usmjeravanje je odgovorno za odgovaranje na URL zahtjeve. CodeIgniter Routing povezuje URL s unaprijed definiranim rutama. Ako se ruta ne podudara, CodeIgniter izbacuje iznimku Stranica nije pronađena.
- Kontroleri – rute su povezane s kontrolerima. Kontroleri spajaju modele i poglede zajedno. Zahtjev za podacima / poslovnom logikom iz modela i vraćanje rezultata putem prezentacije pogleda. Nakon što se URL uskladi s rutom u CodeIgniteru, prosljeđuje se javnoj funkciji kontrolera koja je u interakciji s izvorom podataka, poslovnom logikom i vraća pogled koji prikazuje rezultate.
- Posjeta – pogledi su odgovorni za prezentaciju. Pogled je obično kombinacija HTML-a, CSS-a i JavaScript. Ovo je dio koji je odgovoran za prikazivanje web stranice korisniku. Tipično, prikazani podaci obično se dohvaćaju iz baze podataka ili bilo kojeg drugog dostupnog izvora podataka.
Da bismo naučili implementirati usmjerivače na stvarni projekt, pretpostavit ćemo da stvaramo aplikaciju za upravljanje detaljima kontakta. Sljedeća tablica prikazuje URL-ove s kojima će se raditi.
S / N | URL | Ruta | kontrolor | način |
---|---|---|---|---|
1 | / | $route['default_controller'] | Dobrodošli | indeks |
2 | /kontakti | $route['contacts'] | Kontakti | indeks |
3 | /kontakti/kreiraj | $route['create'] | Kontakti | stvoriti |
4 | /contacts/edit/id | $route['edit/:id'] | Kontakti | uredi |
5 | /kontakti/ažuriranje/id | $route['update/:id'] | Kontakti | ažuriranje |
6 | /contacts/delete/id | $route['delete/:id'] | Kontakti | izbrisati |
Stvorit ćemo rute naše aplikacije na temelju gornje tablice. Definirali smo URL-ove, rutu CodeIgnitera i preslikali ih na odgovarajuće kontrolere i nazive metoda.
Stvaranje URL usmjeravanja za aplikaciju
Kreirajmo CodeIgniter URL Routing za naš projekt podučavanja
Otvorite application/config/routes.php
Izmijenite rute tako da odgovaraju sljedećem
$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;
OVDJE,
- $route['default_controller'] = 'dobrodošli'; definira zadani kontroler Welcome.
- $route['contacts'] = 'kontakti'; definira rutu kontakata koja poziva metodu indeksa u kontroleru kontakata
- $route['create'] = 'kontakti/stvori'; definira kreiranje rute koja pokazuje na kontroler kontakata i poziva metodu kreiranja.
- $route['edit/:id'] = 'kontakti/uredi'; definira rutu za uređivanje koja prihvaća parametar id i ukazuje na metodu za uređivanje kontrolera kontakata
- $route['update/:id'] = 'kontakti/ažuriranje'; definira ažuriranje rute koje prihvaća parametar id i ukazuje na metodu ažuriranja klase Kontakti.
- $route['delete/:id'] = 'kontakti/brisanje'; definira rutu brisanja koja prihvaća parametar id i ukazuje na metodu brisanja kontrolera kontakata.
Sljedeća tablica prikazuje odgovarajuće URL-ove izvedene iz gore definiranih ruta
S / N | Ruta | Odgovarajući URL |
---|---|---|
1 | $route['default_controller'] = 'dobrodošli'; | http://localhost:3000 |
2 | $route['contacts'] = 'kontakti'; | http://localhost:3000/contacts |
3 | $route['create'] = 'kontakti/stvori'; | http://localhost:3000/contacts/create |
4 | $route['edit/:id'] = 'kontakti/uredi'; | http://localhost:3000/contacts/edit/1 |
5 | $route['update/:id'] = 'kontakti/ažuriranje'; | http://localhost:3000/contacts/update/1 |
6 | $route['delete/:id'] = 'kontakti/brisanje'; | http://localhost:3000/contacts/delete/1 |
Sada kada smo pokrili rute, kreirajmo kontroler kontakata koji će odgovarati na radnje navedene u rutama.
Napravite novu datoteku rute u CodeIgniteru kao Contacts.php u aplikaciji/kontroleri/Contacts.php
Dodajte sljedeći 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'); } }
OVDJE,
- Kontakti klase proširuju CI_Controller {..} definiraju našu klasu kontrolera i proširuju klasu CI_Controller koja dolazi s CodeIgniterom.
- Gore definirane metode odgovaraju rutama koje smo definirali, a one s parametrima poput delete prihvaćaju parametar $id
- Primijetite da funkcije učitavaju tri (3) pogleda. Zaglavlje i podnožje zajednički su za sve metode. Srednji pogled vrlo je specifičan za radnju, tj. brisanje za funkciju brisanja, stvaranje prikaza za stvaranje funkcije, itd. Još jedna važna stvar koju treba zapamtiti je da se pogledi učitavaju iz poddirektorija kontakata.
CodeIgniter Views
Moramo napraviti još jedan korak prije nego što možemo testirati naše CodeIgniter rute s parametrima u web pregledniku. Kreirajmo odgovarajuće prikaze za gore navedene metode kontrolera.
Sljedeća slika prikazuje kako će vaša aplikacija izgledati
Stvorite sljedeće datoteke u aplikaciji/prikazima
header.php – this file will contain contacts app menu and the header footer.php – this files will contain the application footer.
Stvorite novi imenik kontakata u aplikaciji za prikaze/pogledima/kontaktima
Izradite sljedeće datoteke unutra
index.php create.php edit.php
Struktura vaše datoteke trebala bi biti sljedeća
Ažurirajmo sada 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>
OVDJE,
- Gornji HTML kod učitava Burma CSS iz CDN mreže.
Slijedi kôd za podnožje.php
</div> </div> </section> </body> </html>
Dodajmo sada kôd za datoteke index.php, edit.php i create.php za kontakte.
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>
Možete spremiti sve promjene koje ste napravili.
Otvorite sljedeći URL u svom web pregledniku http://localhost:3000/contacts/
možete kliknuti na veze Novi kontakt i Uredi kontakt i vidjeti što se događa
rezime
- Rute u CI odgovorne su za odgovaranje na URL zahtjeve. Usmjeravanje povezuje URL s unaprijed definiranim rutama. Ako nije pronađeno podudaranje CodeIgniter Route, CodeIgniter izbacuje iznimku stranica nije pronađena.
- CI Routing odgovoran je za odgovaranje na URL zahtjeve. Usmjeravanje povezuje URL s unaprijed definiranim rutama.
- Kontroleri spajaju modele i poglede zajedno. Zahtjev za podacima / poslovnom logikom iz modela i vraćanje rezultata putem prezentacije pogleda.
- Pogledi su odgovorni za prezentaciju. Pogled je obično kombinacija HTML-a, CSS-a i JavaSkripta.
- U ovom vodiču naučili smo kako stvoriti rute u CodeIgniteru za primjer aplikacije iz stvarnog svijeta i pokrili smo osnove rutiranja koje morate znati da biste započeli s razvojem CodeIgnitera.