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

CodeIgniter nézetek

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

CodeIgniter nézetek

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.