CodePercorsi di innesco: URL Instradamento con esempio

Che cosa sono CodePercorsi di innesco?

I percorsi sono responsabili della risposta a URL richieste. Il routing corrisponde al URL ai percorsi predefiniti. Se non viene trovata alcuna corrispondenza di percorso, CodeIgniter genera un'eccezione di pagina non trovata.

Percorsi in CodeGli inneschi vengono definiti utilizzando la formula seguente:

example.com/Controller/Method/Parameter/

QUI,

  • Controller - รจ mappato al nome del controller che dovrebbe rispondere al URL.
  • Metodo: viene mappato al metodo nel controller che dovrebbe rispondere alla richiesta URI.
  • Parametro: questa sezione รจ facoltativa.

CodeEsempio di percorso dell'accenditore

Vediamo ora un esempio pratico URL Instradamento in entrata CodeAccenditore esempio.

Considera quanto segue URL http://localhost:3000/contacts/edit/1

QUI,

  • Il nome del controller che risponde a quanto sopra URL รจ โ€œcontattiโ€
  • Il metodo nella classe controller Contatti รจ "modifica"
  • Il metodo di modifica accetta un parametro. Nel caso del nostro esempio, al metodo viene passato il valore โ€œ1โ€.

Ecco un breve background di ciรฒ che intendiamo fare:

  • efficiente โ€“ il routing รจ responsabile della risposta a URL richieste. CodeIl routing di Igniter corrisponde a URL ai percorsi predefiniti. Se non viene trovata alcuna corrispondenza di percorso, allora CodeIgniter genera un'eccezione di pagina non trovata.
  • Controller โ€“ i percorsi sono collegati ai controller. I controller collegano i modelli e le viste. La richiesta di dati/logica aziendale dal modello e la restituzione dei risultati tramite la presentazione delle viste. Una volta che URL รจ stato abbinato a un percorso in CodeIn Igniter, la richiesta viene inoltrata a una funzione pubblica del controller che interagisce con l'origine dati, la logica di business e restituisce la vista che visualizza i risultati.
  • Visualizzazioni โ€“ Le visualizzazioni sono responsabili della presentazione. Una vista รจ solitamente una combinazione di HTML, CSS e JavaCopione. Questa รจ la parte responsabile della visualizzazione della pagina web all'utente. In genere, i dati visualizzati vengono solitamente recuperati dal database o da qualsiasi altra origine dati disponibile.

Per imparare come implementare i router in un progetto reale, supporremo di creare un'applicazione per la gestione dei dettagli di contatto. La tabella seguente mostra il URLcon cui lavorerร .

S / N URL strada Controller Metodo
1 / $ percorso['default_controller'] Welcome Index
2 /contatti $percorso['contatti'] Contatti Index
3 /contatti/crea $percorso['crea'] Contatti creare
4 /contatti/modifica/id $percorso['modifica/:id'] Contatti edit
5 /contatti/aggiornamento/id $ percorso['aggiornamento/:id'] Contatti update
6 /contatti/elimina/id $ percorso['cancella/:id'] Contatti delete

Creeremo i percorsi della nostra applicazione in base alla tabella sopra riportata. Abbiamo definito il URLs, CodePercorso Igniter e mappatura ai rispettivi controller e nomi dei metodi.

Creazione URL Instradamento per l'applicazione

Creiamo CodeAccenditore URL Percorso per il nostro progetto tutorial

Apri application/config/routes.php

Modificare i percorsi in modo che corrispondano a quanto segue

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

QUI,

  • $route['default_controller'] = 'benvenuto'; definisce il controller predefinito Benvenuto.
  • $percorso['contatti'] = 'contatti'; definisce un percorso di contatti che chiama il metodo indice nel controller Contatti
  • $route['create'] = 'contatti/crea'; definisce una route create che punta al controller Contatti e chiama il metodo create.
  • $route['edit/:id'] = 'contatti/modifica'; definisce una modifica del percorso che accetta un parametro di id e punta al metodo di modifica del controller Contatti
  • $route['update/:id'] = 'contatti/aggiornamento'; definisce un aggiornamento del percorso che accetta un parametro di id e punta al metodo di aggiornamento della classe Contatti.
  • $route['delete/:id'] = 'contatti/delete'; definisce un percorso di eliminazione che accetta un parametro di id e punta al metodo di eliminazione del controller Contatti.

La tabella seguente mostra i rispettivi URLderivati โ€‹โ€‹dai percorsi sopra definiti

S / N strada Corrispondente URL
1 $route['default_controller'] = 'benvenuto'; http://localhost:3000
2 $percorso['contatti'] = 'contatti'; http://localhost:3000/contacts
3 $route['create'] = 'contatti/crea'; http://localhost:3000/contacts/create
4 $route['edit/:id'] = 'contatti/modifica'; http://localhost:3000/contacts/edit/1
5 $route['update/:id'] = 'contatti/aggiornamento'; http://localhost:3000/contacts/update/1
6 $route['delete/:id'] = 'contatti/delete'; http://localhost:3000/contacts/delete/1

Ora che abbiamo trattato i percorsi, creiamo il controller Contatti che risponderร  alle azioni specificate nei percorsi.

Crea un nuovo file di percorso in CodeIgniter come Contacts.php nella cartella application/controllers/Contacts.php

Aggiungere il seguente codice

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

QUI,

  • La classe contacts estende CI_Controller {..} definisce la nostra classe controller ed estende la classe CI_Controller che viene fornita CodeAccenditore.
  • I metodi definiti sopra corrispondono alle rotte che abbiamo definito e quelli con parametri come delete accettano un parametro $id
  • Notare che le funzioni caricano tre (3) visualizzazioni. L'intestazione e il piรจ di pagina sono comuni a tutti i metodi. La vista centrale รจ molto specifica per l'azione, ad esempio elimina per la funzione di eliminazione crea una vista per creare una funzione, ecc. Un'altra cosa importante da ricordare รจ che le viste vengono caricate dalla sottodirectory dei contatti.

CodeIgniter Views

Dobbiamo ancora fare un altro passo prima di poter testare il nostro CodeRoute Igniter con parametri nel browser web. Creiamo le viste corrispondenti ai metodi del controller sopra descritti.

L'immagine seguente mostra come apparirร  la tua applicazione

CodeIgniter Views

Creare i seguenti file in application/views

header.php โ€“ this file will contain contacts app menu and the header
footer.php โ€“ this files will contain the application footer.

Crea una nuova directory di contatti in views application/views/contacts

Crea i seguenti file all'interno

index.php
create.php
edit.php

La struttura del file dovrebbe essere la seguente

CodeIgniter Views

Aggiorniamo ora 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>

QUI,

  • Il codice HTML sopra carica Burma CSS da una rete CDN.

Di seguito รจ riportato il codice per footer.php

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

Aggiungiamo ora il codice per i file index.php, edit.php e create.php per i contatti.

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>

รˆ possibile salvare tutte le modifiche apportate.

Apri quanto segue URL nel tuo browser web http://localhost:3000/contacts/

puoi fare clic sui collegamenti Nuovo contatto e Modifica contatto e vedere cosa succede

Sintesi

  • I percorsi in CI sono responsabili della risposta a URL richieste. Il routing corrisponde al URL ai percorsi predefiniti. Se no CodeViene quindi trovata una corrispondenza con il percorso Igniter, CodeIgniter genera un'eccezione di pagina non trovata.
  • CI Routing รจ responsabile della risposta a URL richieste. Il routing corrisponde al URL ai percorsi predefiniti.
  • I controller uniscono insieme i modelli e le viste. La richiesta di dati/logica aziendale dal modello e la restituzione dei risultati tramite la presentazione delle visualizzazioni.
  • Le visualizzazioni sono responsabili della presentazione. Una vista รจ solitamente una combinazione di HTML, CSS e JavaScript.
  • In questo tutorial abbiamo imparato come creare percorsi in CodeIgniter per un'applicazione di esempio reale e ha trattato le basi del routing che devi conoscere per iniziare a sviluppareping CodeAccenditore.

Riassumi questo post con: