CodeRute de aprindere: URL Rutare cu exemplu
⚡ Rezumat inteligent
Codeigniter URL Hărți de rutare URL către un controler și o metodă, cu un parametru opțional. Rutele sunt definite în routes.php, deci o versiune curată URL la fel ca contacts/edit/1 rulează metoda de editare a controlerului Contacts, care încarcă vizualizările antet, conținut și subsol.
Care sunt CodeRute de aprindere?
Rutele sunt responsabile pentru răspunsul la URL cereri. Rutarea se potrivește cu URL la rutele predefinite. Dacă nu se găsește nicio potrivire de rută, CodeIgniter generează o excepție de tip pagină negăsită.
Rute în CodeIgnitoarele sunt definite folosind formula de mai jos:
example.com/Controller/Method/Parameter/
Aici:
- Controlerul este mapat la numele controlerului care ar trebui să răspundă la URL.
- Metoda este mapată la metoda din controler care ar trebui să răspundă la cererea URI.
- Parametru – această secțiune este opțională.
CodeExemplu de rute de aprindere
Să analizăm acum o situație practică URL rutare în Codeigniter exemplu. Luați în considerare următoarele URL: http://localhost:3000/contacts/edit/1
Aici:
- Numele operatorului care răspunde la cele de mai sus URL este „contacte”.
- Metoda din clasa de controllere Contacts este „edit”.
- Metoda de editare acceptă un parametru. În exemplul nostru, valoarea „1” este transmisă metodei.
Iată un scurt context despre ceea ce intenționăm să facem:
- Rutare – rutarea răspunde la URL solicitări. CodeTraseul aprinderii se potrivește cu URL la rutele predefinite. Dacă nu se găsește nicio potrivire de rută, CodeIgniter generează o excepție de tip pagină negăsită.
- Controlere – rutele sunt legate de controlere. Controlerele leagă modelele și vizualizările împreună. Acestea solicită date și logică de business de la model și returnează rezultatele prin prezentarea vizualizării. Odată ce o URL a fost asociată cu o rută, aceasta este redirecționată către o funcție publică a controlerului care interacționează cu sursa de date și logica de business și returnează vizualizarea.
- Vizualizări – vizualizările sunt responsabile de prezentare. O vizualizare este de obicei o combinație de HTML, CSS și JavaScenariuAceastă parte este responsabilă de afișarea paginii web către utilizator. De obicei, datele afișate sunt preluate din baza de date sau dintr-o altă sursă de date.
Pentru a învăța cum să implementăm rute într-un proiect din lumea reală, presupunem că creăm o aplicație pentru gestionarea datelor de contact. Tabelul următor prezintă URLcu care vom lucra.
| S / N | URL | Traseul | operator de date cu caracter personal, | Metodă |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | Welcome | 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 URLs, CodeRuta Igniter și le-a mapat la numele controlerului și metodei respective.
Crearea URL Rutare pentru aplicație
Să creăm Codeigniter URL rutare pentru proiectul nostru tutorial. Deschideți application/config/routes.php și 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'] = 'contacts'; definește o rută de contacte care apelează metoda index din controlerul Contacts.
- $route['create'] = 'contacts/create'; definește o rută create care indică controlerul Contacts și apelează metoda create.
- `$route['edit/:id'] = 'contacts/edit';` definește o rută de editare care acceptă un parametru de tip `id` și indică metoda de editare a controlerului `Contacts`.
- `$route['update/:id'] = 'contacts/update';` definește o rută de actualizare care acceptă un parametru de tip `id` și indică metoda de actualizare a clasei `Contacts`.
- `$route['delete/:id'] = 'contacts/delete';` definește o rută de ștergere care acceptă un parametru de tip `id` și indică metoda de ștergere a controlerului Contacts.
Tabelul următor prezintă respectivele URLderivate din rutele definite mai sus:
| S / N | Traseul | Corespunzător URL |
|---|---|---|
| 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, haideți să creăm controlerul Contacts care va răspunde acțiunilor specificate în rute. Creați un nou fișier Contacts.php în application/controllers/Contacts.php și 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:
- class Contacts extends CI_Controller {…} definește clasa noastră de controller și extinde clasa CI_Controller care vine cu CodeAprindere.
- Metodele definite mai sus corespund rutelor pe care le-am definit, iar cele cu parametri precum delete acceptă un parametru de tip $id.
- Observați că funcțiile încarcă trei vizualizări. Antetul și subsolul sunt comune pentru toate metodele. Vizualizarea din mijloc este specifică acțiunii, adică „delete” pentru funcția „delete” și „create” pentru funcția „create”. Un alt lucru important de reținut este că vizualizările sunt încărcate din subdirectorul „contacts”.
CodeVizualizări Igniter
Mai avem nevoie de un pas înainte să putem testa CodeRutele Igniter cu parametri în browserul web. Să creăm vizualizările corespunzătoare metodelor controler de mai sus. Următoarea imagine arată cum va arăta aplicația:
Creați următoarele fișiere în application/views:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Creați un nou director de contacte în cadrul aplicației/views (application/views/contacts) și creați următoarele fișiere în interiorul acestuia:
index.php create.php edit.php
Structura fișierului dumneavoastră ar trebui să fie următoarea:
Să actualizăm acum fișierul 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ă CSS-ul Bulma dintr-o rețea CDN.
Următorul este codul pentru fișierul 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 efectuate. Deschideți următoarele URL în browserul tău web: http://localhost:3000/contacts/Puteți da clic pe linkurile Contact nou și Editare contact și puteți vedea ce se întâmplă.



