CodeIgniter Routes: Směrování URL s příkladem
Co jsou CodeIgniter Routes?
Trasy jsou zodpovědné za odpověď na požadavky URL. Směrování odpovídá URL předdefinovaným trasám. Pokud není nalezena žádná shoda trasy, CodeIgniter vyvolá výjimku pro nenalezenou stránku.
Trasy v CodeIgniter jsou definovány pomocí níže uvedeného vzorce:
example.com/Controller/Method/Parameter/
TADY,
- Řadič -je mapován na název řadiče, který by měl odpovídat URL.
- Metoda – je mapována na metodu v řadiči, která má reagovat na požadavek URI.
- Parametr – tato sekce je volitelná.
Příklad tras CodeIgniter
Podívejme se nyní na praktické směrování URL CodeIgniter příklad.
Zvažte následující URL http://localhost:3000/contacts/edit/1
TADY,
- Název ovladače, který odpovídá na výše uvedenou adresu URL, je „kontakty“
- Metoda ve třídě Controller Contacts je „upravit“
- Metoda edit přijímá parametr. V případě našeho příkladu je do metody předána hodnota „1“.
Zde je stručné pozadí toho, co plánujeme udělat:
- Směrování – směrování odpovídá za odpověď na požadavky URL. CodeIgniter Routing odpovídá URL předdefinovaným trasám. Pokud není nalezena shoda trasy, CodeIgniter vyvolá výjimku stránky nenalezena.
- řadiče – trasy jsou propojeny s ovladači. Ovladače slepí modely a pohledy dohromady. Požadavek na data / obchodní logiku z modelu a vrácení výsledků prostřednictvím prezentace pohledů. Jakmile je adresa URL přiřazena k Route v CodeIgniter, je předána veřejné funkci řadiče, která interaguje se zdrojem dat, obchodní logikou a vrací pohled, který zobrazuje výsledky.
- Zobrazení – za prezentaci odpovídají pohledy. Pohled je obvykle kombinací HTML, CSS a JavaScénář. Tato část je zodpovědná za zobrazení webové stránky uživateli. Typicky jsou zobrazená data obvykle načtena z databáze nebo jiných dostupných zdrojů dat.
Abychom se naučili implementovat routery na reálném projektu, budeme předpokládat, že vytváříme aplikaci pro správu kontaktních údajů. Následující tabulka ukazuje adresy URL, se kterými se bude pracovat.
S / N | URL | Trasa | kontrolor | Metoda |
---|---|---|---|---|
1 | / | $route['default_controller'] | Vítejte | index |
2 | /kontakty | $route['contacts'] | Kontakty | index |
3 | /kontakty/vytvořit | $route['create'] | Kontakty | vytvořit |
4 | /contacts/edit/id | $route['edit/:id'] | Kontakty | editovat |
5 | /contacts/update/id | $route['update/:id'] | Kontakty | aktualizovat |
6 | /contacts/delete/id | $route['delete/:id'] | Kontakty | vymazat |
Na základě výše uvedené tabulky vytvoříme trasy naší aplikace. Definovali jsme adresy URL, trasu CodeIgniter a namapovali je na příslušné názvy ovladačů a metod.
Vytvoření směrování URL pro aplikaci
Pojďme vytvořit CodeIgniter URL Routing pro náš výukový projekt
Otevřete application/config/routes.php
Upravte trasy tak, aby odpovídaly následujícímu
$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;
TADY,
- $route['default_controller'] = 'vítejte'; definuje výchozí ovladač Welcome.
- $route['contacts'] = 'kontakty'; definuje cestu kontaktů, která volá metodu indexu v řadiči kontaktů
- $route['create'] = 'kontakty/vytvořit'; definuje vytvoření trasy, která ukazuje na ovladač Contacts, a volá metodu create.
- $route['edit/:id'] = 'kontakty/upravit'; definuje úpravu trasy, která přijímá parametr id a ukazuje na metodu úpravy ovladače Contacts
- $route['update/:id'] = 'kontakty/aktualizace'; definuje aktualizaci trasy, která přijímá parametr id a ukazuje na metodu aktualizace třídy Kontakty.
- $route['delete/:id'] = 'kontakty/smazat'; definuje mazání trasy, které přijímá parametr id a ukazuje na metodu mazání ovladače Contacts.
Následující tabulka ukazuje příslušné adresy URL odvozené z výše definovaných tras
S / N | Trasa | Odpovídající URL |
---|---|---|
1 | $route['default_controller'] = 'vítejte'; | http://localhost:3000 |
2 | $route['contacts'] = 'kontakty'; | http://localhost:3000/contacts |
3 | $route['create'] = 'kontakty/vytvořit'; | http://localhost:3000/contacts/create |
4 | $route['edit/:id'] = 'kontakty/upravit'; | http://localhost:3000/contacts/edit/1 |
5 | $route['update/:id'] = 'kontakty/aktualizace'; | http://localhost:3000/contacts/update/1 |
6 | $route['delete/:id'] = 'kontakty/smazat'; | http://localhost:3000/contacts/delete/1 |
Nyní, když jsme pokryli trasy, vytvořte řadič kontaktů, který bude reagovat na akce specifikované v trasách.
Vytvořte nový soubor Route v CodeIgniter jako Contacts.php v application/controllers/Contacts.php
Přidejte následující kód
<?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'); } }
TADY,
- Class Contacts rozšiřuje CI_Controller {..} definuje naši třídu kontroléru a rozšiřuje třídu CI_Controller, která je dodávána s CodeIgniter.
- Výše definované metody odpovídají trasám, které jsme definovali, a ty s parametry jako delete přijímají parametr $id
- Všimněte si, že funkce načítají tři (3) pohledy. Záhlaví a zápatí jsou společné pro všechny metody. Prostřední pohled je velmi specifický pro akci, tj. smazat pro funkci odstranění vytvořit pohled pro vytvoření funkce atd. Další důležitou věcí, kterou je třeba si zapamatovat, je, že pohledy se načítají z podadresáře kontaktů.
Zobrazení CodeIgniter
Než budeme moci otestovat naše CodeIgniter Routes s parametry ve webovém prohlížeči, musíme udělat ještě jeden krok. Vytvořme odpovídající pohledy k výše uvedeným metodám ovladače.
Následující obrázek ukazuje, jak bude vaše aplikace vypadat
Vytvořte následující soubory v aplikaci/pohledech
header.php – this file will contain contacts app menu and the header footer.php – this files will contain the application footer.
Vytvořte nový adresář kontaktů v aplikaci pohledů/zobrazení/kontakty
Uvnitř vytvořte následující soubory
index.php create.php edit.php
Struktura vašeho souboru by měla být následující
Pojďme nyní aktualizovat 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>
TADY,
- Výše uvedený kód HTML načte styl CSS Barma ze sítě CDN.
Následuje kód zápatí.php
</div> </div> </section> </body> </html>
Nyní přidáme kód pro soubory index.php, edit.php a create.php pro kontakty.
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>
Můžete uložit všechny provedené změny.
Otevřete následující URL ve svém webovém prohlížeči http://localhost:3000/contacts/
můžete kliknout na odkazy Nový kontakt a Upravit kontakt a uvidíte, co se stane
Shrnutí
- Trasy v CI jsou zodpovědné za odpověď na požadavky URL. Směrování odpovídá URL předdefinovaným trasám. Pokud není nalezena žádná shoda CodeIgniter Route, CodeIgniter vyvolá výjimku pro nenalezenou stránku.
- CI Routing odpovídá za odpovědi na požadavky URL. Směrování odpovídá URL předdefinovaným trasám.
- Ovladače slepí modely a pohledy dohromady. Požadavek na data / obchodní logiku z modelu a vrácení výsledků prostřednictvím prezentace pohledů.
- Za prezentaci odpovídají pohledy. Pohled je obvykle kombinací HTML, CSS a JavaSkript.
- V tomto tutoriálu jsme se naučili, jak vytvořit trasy v CodeIgniter pro ukázkovou aplikaci v reálném světě, a probrali jsme základy směrování, které potřebujete znát, abyste mohli začít vyvíjet CodeIgniter.