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.

  • 🧭 Regula de bază: Un traseu corespunde unui URL la un controler, o metodă și un parametru opțional.
  • 📐 Formula: Șablonul este Controller/Method/Parameter, definit în application/config/routes.php.
  • 🏠 Rută implicită: default_controller setează pagina principală atunci când nu există URL segmentul este dat.
  • 🔢 parametri: O rută precum edit/:id transmite valoarea id în metoda controlerului.
  • 🎛️ Controlor: Fiecare rută se mapează la o metodă care încarcă vizualizările corespunzătoare.
  • 🖼️ Vizualizări partajate: Vizualizările antetului și subsolului sunt reutilizate, cu o vizualizare centrală specifică pentru fiecare acțiune.
  • 404 Manipulare: Un inegalabil URL ridică o excepție de tip pagină negăsită, care poate fi suprascrisă cu 404_override.

CodeRute de aprindere

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:

CodePrevizualizare aplicație contacte Igniter

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:

CodeStructura fișierelor Igniter Views

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ă.

Întrebări frecvente

Definiți ruta cu un substituent, cum ar fi edit/:id, și acceptați argumentul corespunzător în metoda controlerului, de exemplu edit($id). CodeIgniterul trece prin URL segmentează-te în acel argument.

CodeIgniter generează o excepție de tip pagină negăsită și afișează pagina 404. Puteți indica 404_override către propriul controler pentru a afișa o pagină de eroare personalizată.

site_url() construiește o pagină completă URL din URL-ul de bază și din rută, astfel încât linkurile să continue să funcționeze dacă site-ul se mută sau calea de bază se modifică. Este nevoie de URL ajutor să fie încărcat primul.

Da. Pornind de la un nume de resursă, cum ar fi contacte, inteligența artificială poate produce indexul, crea, edita, actualiza și șterge rute cu metode de controler corespunzătoare, urmând convențiile REST. Confirmați numele parametrilor.

Încărcarea separată a antetului și a subsolului evită repetarea aceluiași aspect în fiecare vizualizare de pagină. Fiecare metodă încarcă antetul partajat, o vizualizare de conținut specifică, apoi subsolul partajat.

Rezumați această postare cu: