CodeTrasy Igniter: Směrování URL s příkladem
Jaké jsou CodeTrasy zapalovačů?
Trasy jsou zodpovědné za odpovídání na požadavky URL. Směrování porovnává URL s předdefinovanými trasami. Pokud není nalezena žádná shoda trasy, pak... CodeIgniter vyvolá výjimku „stránka nenalezena“.
Trasy v CodeZapalovače jsou definovány pomocí následující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á.
CodePříklad tras zapalovače
Podívejme se nyní na praktické směrování URL CodeZapalovač 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í je zodpovědné za odpovídání na požadavky URL. CodeSměrování Igniter porovnává URL s předdefinovanými trasami. Pokud není nalezena shoda trasy, pak CodeIgniter vyvolá výjimku „stránka nenalezena“.
- řadiče – trasy jsou propojeny s kontroléry. Kontroléry spojují modely a pohledy dohromady. Požadavek na data / obchodní logiku z modelu a vrácení výsledků prostřednictvím prezentace pohledů. Jakmile je URL přiřazena trase v CodeIgniter, je přeposílán veřejné funkci kontroleru, 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 |
Vytvoříme trasy naší aplikace na základě výše uvedené tabulky. Definovali jsme URL adresy, CodeTrasa zapalovače a namapovala je na příslušné názvy kontroleru a metod.
Vytvoření směrování URL pro aplikaci
Pojďme tvořit CodeSměrování URL Igniteru pro náš tutoriálový 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 trasy v CodeZapalovač jako Contacts.php v souboru 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,
- Třída contacts extends CI_Controller {..} definuje naši třídu kontroleru a rozšiřuje třídu CI_Controller, která je součástí CodeZapalovač.
- 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ů.
CodeZobrazení zapalovače
Než budeme moci otestovat naše, musíme udělat ještě jeden krok. CodeTrasy zapalovače s parametry ve webovém prohlížeči. Vytvořme odpovídající zobrazení pro výše uvedené metody kontroleru.
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ídání na požadavky URL. Směrování porovnává URL s předdefinovanými trasami. Pokud ne CodePoté je nalezena shoda trasy zapalovače, CodeIgniter vyvolá výjimku „stránka nenalezena“.
- 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 vytvářet trasy v CodeIgniter pro příklad reálné aplikace a pokryl základy směrování, které potřebujete znát pro zahájení vývojeping CodeZapalovač.


