CodeIgniter Routes: URL-útválasztás példával
Mik azok a CodeIgniter útvonalak?
A Routes felelős az URL-kérések megválaszolásáért. Az útválasztás az URL-t az előre meghatározott útvonalakkal egyezteti. Ha nem található útvonal-egyezés, akkor a CodeIgniter egy oldalt nem talált kivételt dob.
A CodeIgniter útvonalait az alábbi képlet segítségével határozzuk meg:
example.com/Controller/Method/Parameter/
ITT,
- A Controller -arra a vezérlő nevére van leképezve, amelynek válaszolnia kell az URL-re.
- Method – arra a metódusra van leképezve a vezérlőben, amelynek válaszolnia kell az URI-kérésre.
- Paraméter – ez a szakasz nem kötelező.
CodeIgniter Routes példa
Nézzünk most egy praktikus URL-útválasztást CodeIgniter példa.
Vegye figyelembe a következő URL-t http://localhost:3000/contacts/edit/1
ITT,
- A fenti URL-re válaszoló vezérlő neve „kapcsolatok”
- A Contacts vezérlőosztály metódusa az „edit”
- A szerkesztési módszer elfogad egy paramétert. Példánkban az „1” értéket adjuk át a metódusnak.
Íme egy rövid előzmény, hogy mit tervezünk:
- útvonalválasztás – az útválasztás felelős az URL-kérések megválaszolásáért. A CodeIgniter Routing az URL-t az előre meghatározott útvonalakkal egyezteti. Ha nem található az útvonal egyezése, akkor a CodeIgniter egy oldal nem található kivételt dob.
- Vezérlők – az útvonalak vezérlőkkel vannak összekötve. A vezérlők összeragasztják a modelleket és a nézeteket. Adatkérés / üzleti logika a modellből és az eredmények visszaadása a nézetek prezentációján keresztül. Miután egy URL-címet egyeztettek egy útvonallal a CodeIgniterben, az egy vezérlő nyilvános funkciójához kerül továbbításra, amely együttműködik az adatforrással, az üzleti logikával, és visszaadja az eredményeket megjelenítő nézetet.
- Nézetek – a nézetek felelősek a bemutatásért. A nézet általában HTML, CSS és JavaForgatókönyv. Ez az a rész, amely felelős a weboldal megjelenítéséért a felhasználó számára. A megjelenített adatok általában az adatbázisból vagy bármely más elérhető adatforrásból származnak.
Az útválasztók valós projektekben való megvalósításának megtanulásához feltételezzük, hogy egy alkalmazást hozunk létre a kapcsolati adatok kezelésére. A következő táblázat azokat az URL-eket mutatja be, amelyekkel dolgozni fog.
S / N | URL | Útvonal | ellenőr | Módszer |
---|---|---|---|---|
1 | / | $route['default_controller'] | Üdvözöljük | index |
2 | /kapcsolatok | $route['contacts'] | Kapcsolatok | index |
3 | /contacts/create | $route['létrehozás'] | Kapcsolatok | teremt |
4 | /contacts/edit/id | $route['edit/:id'] | Kapcsolatok | szerkesztés |
5 | /contacts/update/id | $route['frissítés/:id'] | Kapcsolatok | frissítés |
6 | /contacts/delete/id | $route['delete/:id'] | Kapcsolatok | töröl |
Alkalmazásunk útvonalait a fenti táblázat alapján készítjük el. Meghatároztuk az URL-eket, a CodeIgniter útvonalat, és leképeztük őket a megfelelő vezérlő- és metódusnevekre.
URL-útválasztás létrehozása az alkalmazáshoz
Hozzuk létre a CodeIgniter URL-útválasztást az oktatóprogramunkhoz
Nyissa meg az application/config/routes.php fájlt
Módosítsa az útvonalakat az alábbiak szerint
$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;
ITT,
- $route['default_controller'] = 'üdvözöljük'; Meghatározza az alapértelmezett vezérlőt Welcome.
- $route['contacts'] = 'kapcsolatok'; definiál egy kapcsolattartó útvonalat, amely meghívja az index metódust a Contacts vezérlőben
- $route['create'] = 'névjegyek/létrehozás'; meghatároz egy útvonal létrehozását, amely a Névjegyek vezérlőre mutat, és meghívja a Create metódust.
- $route['edit/:id'] = 'kapcsolatok/szerkesztés'; definiál egy útvonal-szerkesztést, amely elfogadja az id paramétert, és a Kapcsolatok vezérlő szerkesztési metódusára mutat
- $route['update/:id'] = 'kapcsolatok/frissítés'; definiál egy útvonalfrissítést, amely elfogadja az id paramétert, és a Contacts osztály frissítési metódusára mutat.
- $route['delete/:id'] = 'névjegyek/törlés'; definiál egy útvonaltörlést, amely elfogadja az id paramétert, és a Contacts vezérlő törlési metódusára mutat.
Az alábbi táblázat a fent meghatározott útvonalakból származó megfelelő URL-eket mutatja be
S / N | Útvonal | Megfelelő URL |
---|---|---|
1 | $route['default_controller'] = 'üdvözöljük'; | http://localhost:3000 |
2 | $route['contacts'] = 'kapcsolatok'; | http://localhost:3000/contacts |
3 | $route['create'] = 'névjegyek/létrehozás'; | http://localhost:3000/contacts/create |
4 | $route['edit/:id'] = 'kapcsolatok/szerkesztés'; | http://localhost:3000/contacts/edit/1 |
5 | $route['update/:id'] = 'kapcsolatok/frissítés'; | http://localhost:3000/contacts/update/1 |
6 | $route['delete/:id'] = 'névjegyek/törlés'; | http://localhost:3000/contacts/delete/1 |
Most, hogy áttekintettük az útvonalakat, hozzuk létre a Contacts vezérlőt, amely reagálni fog az útvonalakban megadott műveletekre.
Hozzon létre egy új útvonalfájlt a CodeIgniterben Contacts.php néven az application/controllers/Contacts.php fájlban
Adja hozzá a következő kódot
<?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'); } }
ITT,
- Class contacts kiterjeszti A CI_Controller {..} meghatározza a vezérlő osztályunkat, és kiterjeszti a CodeIgniterrel együtt járó CI_Controller osztályt.
- A fent definiált metódusok megfelelnek az általunk meghatározott útvonalaknak, és azok, amelyek olyan paraméterekkel rendelkeznek, mint a delete, elfogadják a $id paramétert
- Figyelje meg, hogy a függvények három (3) nézetet töltenek be. A fejléc és a lábléc minden módszernél közös. A középső nézet nagyon specifikus a műveletre, azaz a törlés a törlés funkcióhoz hozzon létre egy nézetet egy függvény létrehozásához stb. Egy másik fontos dolog, amit meg kell jegyezni, hogy a nézetek a kapcsolatok alkönyvtárból töltődnek be.
CodeIgniter nézetek
Még egy lépést kell tennünk, mielőtt tesztelhetjük CodeIgniter útvonalainkat paraméterekkel a webböngészőben. Hozzuk létre a megfelelő nézeteket a fenti vezérlő metódusokhoz.
A következő képen látható, hogyan fog kinézni az alkalmazás
Hozza létre a következő fájlokat az alkalmazásban/nézetekben
header.php – this file will contain contacts app menu and the header footer.php – this files will contain the application footer.
Hozzon létre egy új névjegykönyvtárat a view application/views/contacts mappában
Hozza létre a következő fájlokat belül
index.php create.php edit.php
A fájl szerkezetének a következőnek kell lennie
Most frissítsük a header.php-t
<!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>
ITT,
- A fenti HTML kód betölti a Burma CSS-t egy CDN hálózatból.
A következő a lábléc.php kódja
</div> </div> </section> </body> </html>
Adjuk hozzá az index.php, edit.php és create.php fájlok kódját a névjegyekhez.
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>
Az összes végrehajtott módosítást elmentheti.
Nyissa meg a következő URL-t a böngészőjében http://localhost:3000/contacts/
rákattinthat az Új névjegy és a Kapcsolat szerkesztése hivatkozásokra, és megnézheti, mi történik
Összegzésként
- A CI-ben lévő útvonalak felelősek az URL-kérések megválaszolásáért. Az útválasztás az URL-t az előre meghatározott útvonalakkal egyezteti. Ha nem található CodeIgniter Route egyezés, akkor a CodeIgniter egy oldalt nem talált kivételt dob.
- A CI Routing felelős az URL-kérések megválaszolásáért. Az útválasztás az URL-t az előre meghatározott útvonalakkal egyezteti.
- A vezérlők összeragasztják a modelleket és a nézeteket. Adatkérés / üzleti logika a modellből és az eredmények visszaadása a nézetek prezentációján keresztül.
- A nézetek felelősek a bemutatásért. A nézet általában HTML, CSS és JavaForgatókönyv.
- Ebben az oktatóanyagban megtanultuk, hogyan hozhatunk létre útvonalakat a CodeIgniterben egy valós példaalkalmazáshoz, és bemutattuk az útválasztás alapjait, amelyeket ismernie kell a CodeIgniter fejlesztésének megkezdéséhez.