CodePutovi paljenja: URL Rutiranje s primjerom
โก Pametni saลพetak
Codeupaljaฤ URL Karte usmjeravanja a URL kontroleru i metodi, s opcionalnim parametrom. Rute su definirane u routes.php, tako da je ฤist URL Kao i contacts/edit/1, pokreฤe se metoda edit kontrolera Contacts, koja uฤitava prikaze zaglavlja, sadrลพaja i podnoลพja.

ล to su CodePutovi paljenja?
Rute su odgovorne za odgovaranje na URL zahtjevi. Usmjeravanje odgovara URL na unaprijed definirane rute. Ako se ne pronaฤe odgovarajuฤa ruta, CodeIgniter baca iznimku "stranica nije pronaฤena".
Rute u CodeUpaljaฤ se definira pomoฤu sljedeฤe formule:
example.com/Controller/Method/Parameter/
Ovdje:
- Kontroler je mapiran na naziv kontrolera koji bi trebao odgovoriti na URL.
- Metoda je mapirana na metodu u kontroleru koja bi trebala odgovoriti na URI zahtjev.
- Parametar โ ovaj odjeljak nije obavezan.
CodePrimjer ruta paljenja
Pogledajmo sada praktiฤni primjer URL usmjeravanje u Codeupaljaฤ primjer. Razmotrite sljedeฤe URL: http://localhost:3000/contacts/edit/1
Ovdje:
- Ime kontrolora koji odgovara na gore navedeno URL su โkontaktiโ.
- Metoda u klasi kontrolera Contacts je "edit" (uredi).
- Metoda ureฤivanja prihvaฤa parametar. U naลกem primjeru, metodi se prosljeฤuje vrijednost "1".
Evo kratke pozadine onoga ลกto planiramo uฤiniti:
- Usmjeravanje โ usmjeravanje odgovara na URL zahtjevi. CodeUsmjeravanje upaljaฤa odgovara URL na unaprijed definirane rute. Ako se ne pronaฤe odgovarajuฤa ruta, CodeIgniter baca iznimku "stranica nije pronaฤena".
- Kontroleri โ rute su povezane s kontrolerima. Kontroleri povezuju modele i prikaze. Oni zahtijevaju podatke i poslovnu logiku od modela i vraฤaju rezultate putem prezentacije prikaza. Nakon URL je usklaฤen s rutom, prosljeฤuje se javnoj funkciji kontrolera koja komunicira s izvorom podataka i poslovnom logikom te vraฤa prikaz.
- Posjeta โ pogledi su odgovorni za prezentaciju. Pogled je obiฤno kombinacija HTML-a, CSS-a i JavaScriptOvaj dio je odgovoran za prikaz web stranice korisniku. Prikazani podaci obiฤno se dohvaฤaju iz baze podataka ili drugog izvora podataka.
Kako bismo nauฤili kako implementirati rute u stvarnom projektu, pretpostavljamo da izraฤujemo aplikaciju za upravljanje kontaktnim podacima. Sljedeฤa tablica prikazuje URLs kojima ฤemo raditi.
| S / N | URL | Ruta | kontrolor | naฤin |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | Dobrodoลกli | indeks |
| 2 | /kontakti | $route['contacts'] | Kontakti | indeks |
| 3 | /kontakti/kreiraj | $route['create'] | Kontakti | stvoriti |
| 4 | /contacts/edit/id | $route['edit/:id'] | Kontakti | uredi |
| 5 | /kontakti/aลพuriranje/id | $route['update/:id'] | Kontakti | aลพuriranje |
| 6 | /contacts/delete/id | $route['delete/:id'] | Kontakti | izbrisati |
Rute naลกe aplikacije kreirat ฤemo na temelju gornje tablice. Definirali smo URLs, the CodeRutu Ignitera i mapirala ih na odgovarajuฤe nazive kontrolera i metoda.
Stvaranje URL Usmjeravanje za aplikaciju
Stvorimo Codeupaljaฤ URL usmjeravanje za naลก tutorijal. Otvorite application/config/routes.php i izmijenite rute kako bi odgovarale sljedeฤem:
$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;
Ovdje:
- $route['default_controller'] = 'dobrodoลกli'; definira zadani kontroler Welcome.
- $route['contacts'] = 'contacts'; definira rutu kontakata koja poziva metodu index u kontroleru kontakata.
- $route['create'] = 'contacts/create'; definira metodu create rute koja pokazuje na kontroler kontakata i poziva metodu create.
- $route['edit/:id'] = 'contacts/edit'; definira ureฤivanje rute koje prihvaฤa parametar id i pokazuje na metodu ureฤivanja kontrolera kontakata.
- $route['update/:id'] = 'contacts/update'; definira aลพuriranje rute koje prihvaฤa parametar id i pokazuje na metodu aลพuriranja klase Contacts.
- $route['delete/:id'] = 'contacts/delete'; definira rutu za brisanje koja prihvaฤa parametar id i pokazuje na metodu brisanja kontrolera kontakata.
Sljedeฤa tablica prikazuje odgovarajuฤe URLizvedene iz gore definiranih ruta:
| S / N | Ruta | Odgovara URL |
|---|---|---|
| 1 | $route['default_controller'] = 'dobrodoลกli'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'kontakti'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'kontakti/stvori'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'kontakti/uredi'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'kontakti/aลพuriranje'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'kontakti/brisanje'; | http://localhost:3000/contacts/delete/1 |
Sada kada smo obradili rute, kreirajmo kontroler kontakata koji ฤe odgovarati na radnje navedene u rutama. Izradite novu datoteku Contacts.php u application/controllers/Contacts.php i dodajte sljedeฤi kod:
<?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'); } }
Ovdje:
- class Contacts extends CI_Controller {โฆ} definira naลกu klasu kontrolera i proลกiruje klasu CI_Controller koja dolazi s CodeUpaljaฤ.
- Metode definirane gore odgovaraju rutama koje smo definirali, a one s parametrima poput delete prihvaฤaju parametar $id.
- Primijetite da funkcije uฤitavaju tri prikaza. Zaglavlje i podnoลพje zajedniฤki su za sve metode. Srednji prikaz specifiฤan je za radnju, tj. delete za funkciju brisanja i create za funkciju stvaranja. Joลก jedna vaลพna stvar koju treba zapamtiti je da se prikazi uฤitavaju iz poddirektorija kontakata.
CodePogledi zapaljivaฤa
Joลก nam je potreban jedan korak prije nego ลกto moลพemo testirati naลกe CodeRute paljenja s parametrima u web pregledniku. Izradimo prikaze koji odgovaraju gore navedenim metodama kontrolera. Sljedeฤa slika prikazuje kako ฤe aplikacija izgledati:
U application/views kreirajte sljedeฤe datoteke:
header.php โ this file will contain the contacts app menu and the header footer.php โ this file will contain the application footer
Napravite novi direktorij kontakata unutar aplikacije/pogledi (application/views/contacts) i unutar njega stvorite sljedeฤe datoteke:
index.php create.php edit.php
Struktura vaลกe datoteke trebala bi biti sljedeฤa:
Sada aลพurirajmo datoteku 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>
Ovdje:
- Gornji HTML kod uฤitava Bulma CSS s CDN-a.
Slijedeฤi je kod za datoteku footer.php:
</div> </div> </section> </body> </html>
Dodajmo sada kod za datoteke index.php, edit.php i create.php za kontakte:
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>
Moลพete spremiti sve napravljene promjene. Otvorite sljedeฤe URL u vaลกem web pregledniku: http://localhost:3000/contacts/Moลพete kliknuti na poveznice Novi kontakt i Uredi kontakt i vidjeti ลกto se dogaฤa.


