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.

  • 🧭 Regola fondamentale: Un percorso corrisponde a URL a un controller, un metodo e un parametro opzionale.
  • 📐 Formula: Lo schema è Controller/Metodo/Parametro, definito in application/config/routes.php.
  • 🏠 Percorso predefinito: default_controller imposta la home page quando non URL è dato il segmento.
  • 🔢 parametri: Un percorso come edit/:id passa il valore dell'ID al metodo del controller.
  • controller: Ogni percorso corrisponde a un metodo che carica le viste corrispondenti.
  • Opinioni condivise: Le viste di intestazione e piè di pagina vengono riutilizzate, con una vista centrale specifica per ogni azione.
  • 404 Movimentazione: Un ineguagliabile URL genera un'eccezione di pagina non trovata, sovrascrivibile con 404_override.

CodePercorsi di accensione

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:

CodeAnteprima dell'applicazione Igniter Contacts

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:

CodeStruttura dei file delle viste di Igniter

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.

DOMANDE FREQUENTI

Definisci il percorso con un segnaposto come edit/:id e accetta l'argomento corrispondente nel metodo del controller, ad esempio edit($id). CodeL'accenditore passa il URL segmento in tale argomentazione.

CodeIgniter genera un'eccezione di pagina non trovata e mostra la pagina 404. È possibile impostare 404_override sul proprio controller per visualizzare invece una pagina di errore personalizzata.

site_url() costruisce un completo URL dal tuo base_url e dal percorso, in modo che i link continuino a funzionare se il sito si sposta o il percorso base cambia. Ne ha bisogno URL l'helper deve essere caricato per primo.

Sì. A partire da un nome di risorsa come "contatti", l'IA può generare l'indice, creare, modificare, aggiornare ed eliminare le route con i relativi metodi del controller, seguendo le convenzioni REST. Conferma i nomi dei parametri.

Caricare l'intestazione e il piè di pagina separatamente evita di ripetere lo stesso layout in ogni visualizzazione della pagina. Ciascun metodo carica l'intestazione condivisa, una visualizzazione di contenuto specifica e infine il piè di pagina condiviso.

Riassumi questo post con: