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

Zobrazení CodeIgniter

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í

Zobrazení CodeIgniter

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.