CodePercorsi di innesco: URL Instradamento con esempio
⚡ Riepilogo intelligente
CodeAccenditore URL Mappe di percorso a URL a un controller e a un metodo, con un parametro opzionale. Le rotte sono definite in routes.php, quindi un pulito URL like contacts/edit/1 esegue il metodo edit del controller Contatti, che carica le viste di intestazione, contenuto e piè di pagina.
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 sono definiti utilizzando la formula seguente:
example.com/Controller/Method/Parameter/
Qui:
- Il controller è mappato al nome del controller che dovrebbe rispondere al URL.
- Il metodo è mappato al metodo nel controller che dovrebbe rispondere alla richiesta URI.
- Parametro: questa sezione è facoltativa.
CodeEsempio di percorso dell'accenditore
Ora esaminiamo un esempio pratico URL instradamento in 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 Contacts è "edit".
- Il metodo edit accetta un parametro. Nel nostro esempio, al metodo viene passato il valore "1".
Ecco un breve background di ciò che intendiamo fare:
- efficiente – il routing risponde a URL richieste. CodeIl percorso dell'accenditore corrisponde a URL ai percorsi predefiniti. Se non viene trovata alcuna corrispondenza di percorso, CodeIgniter genera un'eccezione di pagina non trovata.
- Controller – i percorsi sono collegati ai controller. I controller collegano i modelli e le viste. Richiedono dati e logica di business al modello e restituiscono i risultati tramite la presentazione della vista. Una volta che URL Una volta che la richiesta è stata associata a un percorso, viene inoltrata a una funzione pubblica del controller che interagisce con l'origine dati e la logica di business e restituisce la vista.
- Visualizzazioni – Le visualizzazioni sono responsabili della presentazione. Una vista è solitamente una combinazione di HTML, CSS e JavaCopioneQuesta parte è responsabile della visualizzazione della pagina web all'utente. In genere, i dati visualizzati vengono recuperati dal database o da un'altra fonte di dati.
Per imparare come implementare i percorsi in un progetto reale, supponiamo di creare un'applicazione per la gestione dei dettagli di contatto. La tabella seguente mostra il URLcon cui collaboreremo.
| 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. Abbiamo definito il URLs, il 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 e modifica 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.
- $route['contacts'] = 'contacts'; definisce una rotta per i contatti che richiama il metodo index nel controller Contatti.
- $route['create'] = 'contacts/create'; definisce una rotta create che punta al controller Contacts e chiama il metodo create.
- $route['edit/:id'] = 'contacts/edit'; definisce una route di modifica che accetta un parametro id e punta al metodo edit del controller Contatti.
- $route['update/:id'] = 'contacts/update'; definisce una rotta di aggiornamento che accetta un parametro di tipo id e punta al metodo update della classe Contacts.
- $route['delete/:id'] = 'contacts/delete'; definisce una rotta di eliminazione che accetta un parametro id e punta al metodo delete del controller Contatti.
La tabella seguente mostra i rispettivi URLderivati dai percorsi definiti sopra:
| 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 esaminato le route, creiamo il controller Contatti che risponderà alle azioni specificate nelle route. Crea un nuovo file Contacts.php nella directory application/controllers/Contacts.php e aggiungi 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 ai percorsi che abbiamo definito, e quelli con parametri come delete accettano un parametro di tipo $id.
- Si noti che le funzioni caricano tre viste. L'intestazione e il piè di pagina sono comuni a tutti i metodi. La vista centrale è specifica per l'azione, ovvero "elimina" per la funzione di eliminazione e "crea" per la funzione di creazione. Un altro aspetto importante da ricordare è che le viste vengono caricate dalla sottocartella "contatti".
CodeIgniter Views
Dobbiamo ancora fare un altro passo prima di poter testare il nostro CodeIgniter gestisce le route con parametri nel browser web. Creiamo ora le viste corrispondenti ai metodi del controller descritti sopra. L'immagine seguente mostra l'aspetto finale dell'applicazione:
Crea i seguenti file nella cartella application/views:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Crea una nuova directory chiamata contacts all'interno di application/views (application/views/contacts) e crea al suo interno i seguenti file:
index.php create.php edit.php
La struttura dei file dovrebbe essere la seguente:
Procediamo ora ad aggiornare il file 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 qui sopra carica il CSS di Bulma da una CDN.
Di seguito è riportato il codice del file 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>
Puoi salvare tutte le modifiche apportate. Apri il seguente URL nel tuo browser web: http://localhost:3000/contacts/Puoi cliccare sui link "Nuovo contatto" e "Modifica contatto" e vedere cosa succede.



