CodeIgniteri marsruudid: URL-i marsruutimine näitega

Mis on CodeIgniteri marsruudid?

Routes vastutab URL-i päringutele vastamise eest. Marsruutimine sobitab URL-i eelnevalt määratletud marsruutidega. Kui marsruudi vastet ei leita, viskab CodeIgniter lehe ei leitud erandit.

CodeIgniteri marsruudid määratletakse järgmise valemi abil:

example.com/Controller/Method/Parameter/

SIIN,

  • Kontroller -on vastendatud kontrolleri nimega, mis peaks vastama URL-ile.
  • Meetod – vastendatakse meetodiga kontrolleris, mis peaks vastama URI päringule.
  • Parameeter – see jaotis on valikuline.

CodeIgniteri marsruutide näide

Vaatame nüüd praktilist URL-i marsruutimist CodeIgniter näide.

Kaaluge järgmist URL-i http://localhost:3000/contacts/edit/1

SIIN,

  • Ülaltoodud URL-ile reageeriva kontrolleri nimi on "kontaktid"
  • Meetod kontrolleriklassis Kontaktid on "redigeeri"
  • Redigeerimismeetod aktsepteerib parameetrit. Meie näite puhul antakse meetodile üle väärtus “1”.

Siin on lühike taust sellest, mida kavatseme teha:

  • Marsruut – marsruutimine vastutab URL-i päringutele vastamise eest. CodeIgniter Routing sobitab URL-i eelnevalt määratletud marsruutidega. Kui marsruudi vastet ei leita, teeb CodeIgniter erandi lehte ei leitud.
  • Kontrollerid – marsruudid on seotud kontrolleritega. Kontrollerid liimivad mudelid ja vaated kokku. Andmete / äriloogika päring mudelist ja tulemuste tagastamine vaadete esitluse kaudu. Kui URL on CodeIgniteri marsruudiga sobitatud, edastatakse see kontrolleri avalikule funktsioonile, mis suhtleb andmeallika ja äriloogikaga ning tagastab tulemusi kuvava vaate.
  • views – esitlemise eest vastutavad vaated. Vaade on tavaliselt kombinatsioon HTML-ist, CSS-ist ja JavaScript. See osa vastutab veebilehe kasutajale kuvamise eest. Tavaliselt tuuakse kuvatavad andmed tavaliselt andmebaasist või muudest saadaolevatest andmeallikatest.

Et õppida, kuidas ruutereid reaalses projektis rakendada, eeldame, et loome rakendust kontaktandmete haldamiseks. Järgmises tabelis on näidatud URL-id, millega töötatakse.

S / N URL Marsruut kontroller Meetod
1 / $route['default_controller'] Tere tulemast! indeks
2 /kontaktid $route['contacts'] Kontakt indeks
3 /kontaktid/loo $route['loo'] Kontakt looma
4 /contacts/edit/id $route['redigeeri/:id'] Kontakt muuta
5 /contacts/update/id $route['update/:id'] Kontakt ajakohastama
6 /contacts/delete/id $route['delete/:id'] Kontakt kustutama

Koostame oma rakenduse marsruudid ülaltoodud tabeli alusel. Oleme määratlenud URL-id, CodeIgniteri marsruudi ning vastendanud need vastava kontrolleri ja meetodi nimedega.

Rakenduse URL-i marsruutimise loomine

Loome oma õppeprojekti jaoks CodeIgniteri URL-i marsruutimise

Avage application/config/routes.php

Muutke marsruute, et need vastaksid järgmisele

$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;

SIIN,

  • $route['default_controller'] = 'tere tulemast'; määrab vaikekontrolleri Tere tulemast.
  • $route['contacts'] = 'kontaktid'; määrab kontaktide marsruudi, mis kutsub kontaktide kontrolleri indeksmeetodit
  • $route['create'] = 'kontaktid/loo'; määrab marsruudi loomise, mis osutab kontaktide kontrollerile, ja kutsub välja loomise meetodi.
  • $route['edit/:id'] = 'kontaktid/redigeerimine'; määrab marsruudi redigeerimise, mis aktsepteerib id parameetrit ja osutab kontaktide kontrolleri redigeerimismeetodile
  • $route['update/:id'] = 'kontaktid/värskendus'; määratleb marsruudi värskenduse, mis aktsepteerib id parameetrit ja osutab kontaktide klassi värskendusmeetodile.
  • $route['delete/:id'] = 'kontaktid/kustuta'; määrab marsruudi kustutamise, mis aktsepteerib id parameetrit ja osutab kontaktide kontrolleri kustutamismeetodile.

Järgmises tabelis on näidatud ülaltoodud marsruutidelt tuletatud vastavad URL-id

S / N Marsruut Vastav URL
1 $route['default_controller'] = 'tere tulemast'; http://localhost:3000
2 $route['contacts'] = 'kontaktid'; http://localhost:3000/contacts
3 $route['create'] = 'kontaktid/loo'; http://localhost:3000/contacts/create
4 $route['edit/:id'] = 'kontaktid/redigeerimine'; http://localhost:3000/contacts/edit/1
5 $route['update/:id'] = 'kontaktid/värskendus'; http://localhost:3000/contacts/update/1
6 $route['delete/:id'] = 'kontaktid/kustuta'; http://localhost:3000/contacts/delete/1

Nüüd, kui oleme marsruudid läbi käinud, loome kontaktide kontrolleri, mis vastab marsruutidel määratud toimingutele.

Looge CodeIgniteris uus marsruudi fail nimega Contacts.php failis application/controllers/Contacts.php

Lisage järgmine kood

<?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');
    }
}

SIIN,

  • Klassi kontaktid laiendab CI_Controller {..} määratleb meie kontrolleri klassi ja laiendab CodeIgniteriga kaasas olevat klassi CI_Controller.
  • Eespool määratletud meetodid vastavad meie määratletud marsruutidele ja need, mille parameetrid on nagu kustutamine, aktsepteerivad parameetrit $id
  • Pange tähele, et funktsioonid laadivad kolm (3) vaadet. Päis ja jalus on kõigi meetodite jaoks ühised. Keskmine vaade on toimingule väga spetsiifiline, st kustutamise funktsiooni kustutamise jaoks luuakse vaade funktsiooni loomiseks jne. Veel üks oluline asi, mida meeles pidada, on see, et vaated laaditakse kontaktide alamkataloogist.

CodeIgniteri vaated

Peame veel tegema ühe sammu, enne kui saame veebibrauseris CodeIgniteri marsruute parameetritega testida. Loome ülaltoodud kontrolleri meetoditele vastavad vaated.

Järgmine pilt näitab, kuidas teie rakendus välja näeb

CodeIgniteri vaated

Looge rakenduses/vaadetes järgmised failid

header.php – this file will contain contacts app menu and the header
footer.php – this files will contain the application footer.

Looge vaadetes rakendus/vaated/kontaktid uus kontaktide kataloog

Looge sees järgmised failid

index.php
create.php
edit.php

Teie faili struktuur peaks olema järgmine

CodeIgniteri vaated

Uuendame nüüd header.php-d

<!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>

SIIN,

  • Ülaltoodud HTML-kood laadib Burma CSS-i CDN-võrgust.

Järgmine on jaluse.php kood

            </div>
            </div>
        </section>
    </body>
</html>

Lisame nüüd kontaktide jaoks faili index.php, edit.php ja create.php koodi.

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>

Saate salvestada kõik tehtud muudatused.

Avage oma veebibrauseris järgmine URL http://localhost:3000/contacts/

võite klõpsata linkidel Uus kontakt ja Muuda kontakti ja vaadata, mis juhtub

kokkuvõte

  • CI-s olevad marsruudid vastutavad URL-i päringutele vastamise eest. Marsruutimine sobitab URL-i eelnevalt määratletud marsruutidega. Kui CodeIgniteri marsruudi vastet ei leita, viskab CodeIgniter lehe ei leitud erandit.
  • CI Routing vastutab URL-i päringutele vastamise eest. Marsruutimine sobitab URL-i eelnevalt määratletud marsruutidega.
  • Kontrollerid liimivad mudelid ja vaated kokku. Andmete / äriloogika päring mudelist ja tulemuste tagastamine vaadete esitluse kaudu.
  • Esitluse eest vastutavad vaated. Vaade on tavaliselt kombinatsioon HTML-ist, CSS-ist ja JavaSkript.
  • Selles õpetuses oleme õppinud, kuidas luua CodeIgniteris marsruute reaalse näidisrakenduse jaoks, ja käsitlesime marsruutimise põhitõdesid, mida peate CodeIgniteri arendamise alustamiseks teadma.