Rute CodeIgniter: rutare URL cu exemplu
Ce sunt rutele CodeIgniter?
Rutele sunt responsabile pentru răspunsul la solicitările URL. Rutarea potrivește adresa URL cu rutele predefinite. Dacă nu se găsește nicio potrivire de rută, CodeIgniter aruncă o pagină care nu a găsit o excepție.
Rutele din CodeIgniter sunt definite folosind formula de mai jos:
example.com/Controller/Method/Parameter/
AICI,
- Controller - este mapat la numele controlerului care ar trebui să răspundă la adresa URL.
- Metodă – este mapată la metoda din controler care ar trebui să răspundă la cererea URI.
- Parametru – această secțiune este opțională.
Exemplu de rute CodeIgniter
Să ne uităm acum la o rutare URL practică în CodeIgniter exemplu.
Luați în considerare următorul URL http://localhost:3000/contacts/edit/1
AICI,
- Numele controlorului care răspunde la adresa URL de mai sus este „contacte”
- Metoda din clasa controlerului Contacts este „editare”
- Metoda de editare acceptă un parametru. În cazul exemplului nostru, valoarea „1” este transmisă metodei.
Iată un scurt context despre ceea ce intenționăm să facem:
- Rutare – rutarea este responsabilă pentru răspunsul la solicitările URL. CodeIgniter Routing potrivește adresa URL cu rutele predefinite. Dacă nu se găsește potrivirea rutei, atunci CodeIgniter lansează o excepție de pagină negăsită.
- Controlere – rutele sunt legate de controlori. Controlerele lipesc modelele și vederile împreună. Cererea de date/logica de afaceri din model și returnarea rezultatelor prin prezentarea vizualizărilor. Odată ce o adresă URL a fost asociată cu o rută în CodeIgniter, aceasta este redirecționată către o funcție publică a controlerului care interacționează cu sursa de date, logica de afaceri și returnează vizualizarea care afișează rezultatele.
- Vizualizări – vizualizările sunt responsabile de prezentare. O vizualizare este de obicei o combinație de HTML, CSS și JavaScenariu. Aceasta este partea responsabilă pentru afișarea paginii web către utilizator. De obicei, datele afișate sunt de obicei preluate din baza de date sau din orice alte surse de date disponibile.
Pentru a afla cum să implementăm routere într-un proiect din lumea reală, vom presupune că creăm o aplicație pentru gestionarea detaliilor de contact. Următorul tabel arată adresele URL cu care vor funcționa.
S / N | URL-ul | Traseul | operator de date cu caracter personal, | Metodă |
---|---|---|---|---|
1 | / | $route['default_controller'] | Bine ati venit | index |
2 | /contacte | $route['contacte'] | Contact | index |
3 | /contacte/creați | $route['creați'] | Contact | crea |
4 | /contacts/edit/id | $route['edit/:id'] | Contact | edita |
5 | /contacts/update/id | $route['update/:id'] | Contact | actualizare |
6 | /contacts/delete/id | $route['delete/:id'] | Contact | șterge |
Vom crea rutele aplicației noastre pe baza tabelului de mai sus. Am definit URL-urile, ruta CodeIgniter și le-am mapat la controlerul respectiv și numele metodei.
Crearea rutei URL pentru aplicație
Să creăm CodeIgniter URL Routing pentru proiectul nostru tutorial
Deschide aplicația/config/routes.php
Modificați rutele pentru a se potrivi cu următoarele
$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;
AICI,
- $route['default_controller'] = 'bine ai venit'; definește controlerul implicit Bun venit.
- $route['contacts'] = 'contacte'; definește o rută a contactelor care apelează metoda indexului în controlerul Contacts
- $route['create'] = 'contacte/creare'; definește o rută creată care indică controlerul Contacts și apelează metoda create.
- $route['edit/:id'] = 'contacte/editare'; definește o editare a rutei care acceptă un parametru de id și indică metoda de editare a controlerului Contacts
- $route['update/:id'] = 'contacte/actualizare'; definește o actualizare a rutei care acceptă un parametru de id și indică metoda de actualizare a clasei Contacte.
- $route['delete/:id'] = 'contacte/stergere'; definește o ștergere a rutei care acceptă un parametru de id și indică metoda de ștergere a controlerului Contacts.
Următorul tabel prezintă adresele URL respective derivate din rutele definite mai sus
S / N | Traseul | Adresa URL corespunzătoare |
---|---|---|
1 | $route['default_controller'] = 'bine ai venit'; | http://localhost:3000 |
2 | $route['contacts'] = 'contacte'; | http://localhost:3000/contacts |
3 | $route['create'] = 'contacte/creare'; | http://localhost:3000/contacts/create |
4 | $route['edit/:id'] = 'contacte/editare'; | http://localhost:3000/contacts/edit/1 |
5 | $route['update/:id'] = 'contacte/actualizare'; | http://localhost:3000/contacts/update/1 |
6 | $route['delete/:id'] = 'contacte/stergere'; | http://localhost:3000/contacts/delete/1 |
Acum că am acoperit rutele, să creăm controlerul Contacts care va răspunde la acțiunile specificate în rute.
Creați un nou fișier de rută în CodeIgniter ca Contacts.php în application/controllers/Contacts.php
Adăugați următorul cod
<?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'); } }
AICI,
- Contacte de clasă extinde CI_Controller {..} definește clasa noastră de controler și extinde clasa CI_Controller care vine cu CodeIgniter.
- Metodele definite mai sus corespund rutelor pe care le-am definit iar cele cu parametri precum delete acceptă un parametru $id
- Observați că funcțiile încarcă trei (3) vizualizări. Antetul și subsolul sunt comune pentru toate metodele. Vizualizarea din mijloc este foarte specifică acțiunii, adică șterge pentru funcția de ștergere creați o vizualizare pentru crearea unei funcții etc. Un alt lucru important de reținut este că vizualizările sunt încărcate din subdirectorul de contacte.
Vizualizări CodeIgniter
Mai trebuie să facem încă un pas înainte de a putea testa rutele noastre CodeIgniter cu parametri în browserul web. Să creăm vizualizările corespunzătoare metodelor de control de mai sus.
Următoarea imagine arată cum va arăta aplicația dvs
Creați următoarele fișiere în aplicație/vizualizări
header.php – this file will contain contacts app menu and the header footer.php – this files will contain the application footer.
Creați un nou director de contacte în vizualizări aplicație/vizualizări/contacte
Creați următoarele fișiere în interior
index.php create.php edit.php
Structura fișierului dvs. ar trebui să fie după cum urmează
Să actualizăm acum 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>
AICI,
- Codul HTML de mai sus încarcă Burma CSS dintr-o rețea CDN.
Următorul este codul pentru footer.php
</div> </div> </section> </body> </html>
Să adăugăm acum codul pentru fișierele index.php, edit.php și create.php pentru contacte.
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>
Puteți salva toate modificările care au fost făcute.
Deschideți următoarea adresă URL în browserul dvs. web http://localhost:3000/contacts/
puteți face clic pe linkurile Contact nou și Editați contact și puteți vedea ce se întâmplă
Rezumat
- Rutele din CI sunt responsabile pentru răspunsul la solicitările URL. Rutarea potrivește adresa URL cu rutele predefinite. Dacă nu se găsește nicio potrivire a rutei CodeIgniter, CodeIgniter aruncă o pagină care nu a găsit o excepție.
- CI Routing este responsabil pentru răspunsul la solicitările URL. Rutarea potrivește adresa URL cu rutele predefinite.
- Controlerele lipesc modelele și vederile împreună. Cererea de date/logica de afaceri din model și returnarea rezultatelor prin prezentarea vizualizărilor.
- Vizualizările sunt responsabile de prezentare. O vizualizare este de obicei o combinație de HTML, CSS și JavaScenariul.
- În acest tutorial, am învățat cum să creăm rute în CodeIgniter pentru un exemplu de aplicație din lumea reală și am acoperit elementele de bază ale rutării pe care trebuie să le cunoașteți pentru a începe să dezvoltați CodeIgniter.