CodeSytytysreitit: URL Reititys esimerkin avulla

⚡ Älykäs yhteenveto

Codesytytin URL Reitityskartat a URL ohjaimeen ja metodiin, valinnaisella parametrilla. Reitit määritellään tiedostossa routes.php, joten siisti URL kuten contacts/edit/1 suorittaa Contacts-ohjaimen muokkausmetodin, joka lataa otsikko-, sisältö- ja alatunnistenäkymät.

  • 🧭 Ydinsääntö: Reitti vastaa URL ohjaimeen, metodiin ja valinnaiseen parametriin.
  • 📐 kaava: Kuvio on Controller/Method/Parameter, joka on määritelty tiedostossa application/config/routes.php.
  • 🏠 Oletusreitti: default_controller asettaa kotisivun, kun ei URL segmentti on annettu.
  • 🔢 parametrit: Reitti, kuten edit/:id, välittää id-arvon ohjainmetodille.
  • 🎛️ ohjain: Jokainen reitti yhdistetään metodiin, joka lataa vastaavat näkymät.
  • 🖼️ Jaetut näkymät: Ylä- ja alatunnisteenäkymiä käytetään uudelleen, ja jokaisella toiminnolla on oma keskinäkymänsä.
  • ❓ 404 Käsittely: Vertaansa vailla oleva URL aiheuttaa sivua ei löydy -poikkeuksen, joka voidaan ohittaa 404_override-komennolla.

CodeSytytysreitit

Mitä ovat CodeSytytysreitit?

Reitit vastaavat reagoinnista URL pyyntöjä. Reititys vastaa URL ennalta määriteltyihin reitteihin. Jos reittiä ei löydy, CodeIgniter heittää sivua ei löydy -poikkeuksen.

Reitit kaupungissa CodeSytyttimet määritellään alla olevan kaavan avulla:

example.com/Controller/Method/Parameter/

Tässä:

  • Ohjain on yhdistetty ohjaimen nimeen, jonka pitäisi vastata URL.
  • Metodi yhdistetään ohjaimen metodiin, jonka tulisi vastata URI-pyyntöön.
  • Parametri – tämä osio on valinnainen.

CodeSytytysreittien esimerkki

Katsotaanpa nyt käytännönläheistä asiaa URL reititys sisään Codesytytin esimerkki. Tarkastellaan seuraavaa URL: http://localhost:3000/contacts/edit/1

Tässä:

  • Yllä olevaan kysymykseen vastaavan ohjaimen nimi URL on "yhteystiedot".
  • Contacts-luokan ohjainmetodi on ”muokkaa”.
  • edit-metodi hyväksyy parametrin. Esimerkissämme metodille annetaan arvo ”1”.

Tässä lyhyt tausta siitä, mitä aiomme tehdä:

  • Reititys – reititys vastaa URL pyyntöjä. CodeSytyttimen reititys vastaa URL ennalta määriteltyihin reitteihin. Jos reittiä ei löydy, CodeIgniter heittää sivua ei löydy -poikkeuksen.
  • ohjaimet – reitit linkitetään ohjaimiin. Ohjaimet liimaavat mallit ja näkymät yhteen. Ne pyytävät mallista tietoja ja liiketoimintalogiikkaa ja palauttavat tulokset näkymän esityksen kautta. Kun URL on yhdistetty reittiin, se välitetään ohjaimen julkiselle funktiolle, joka on vuorovaikutuksessa tietolähteen ja liiketoimintalogiikan kanssa ja palauttaa näkymän.
  • Näyttökerrat – Näkemykset ovat esittelyvastuussa. Näkymä on yleensä yhdistelmä HTML-, CSS- ja JavaKäsikirjoitusTämä osa vastaa verkkosivun näyttämisestä käyttäjälle. Yleensä näytettävät tiedot haetaan tietokannasta tai muusta tietolähteestä.

Oppiaksemme reittien toteuttamista reaalimaailman projektissa oletamme, että luomme sovellusta yhteystietojen hallintaan. Seuraava taulukko näyttää URLjoiden kanssa tulemme työskentelemään.

S / N URL Reitti ohjain Menetelmä
1 / $route['default_controller'] Tervetuloa indeksi
2 /yhteystiedot $route['contacts'] Yhteystiedot indeksi
3 /contacts/create $route['create'] Yhteystiedot luoda
4 /contacts/edit/id $route['edit/:id'] Yhteystiedot muokata
5 /contacts/update/id $route['päivitys/:id'] Yhteystiedot päivitys
6 /contacts/delete/id $route['delete/:id'] Yhteystiedot poistaa

Luomme sovelluksemme reitit yllä olevan taulukon perusteella. Olemme määritelleet URLs, CodeSytyttimen reitti ja kartoitti ne vastaaviin ohjain- ja metodinimiin.

Luominen URL Sovelluksen reititys

Luokaamme Codesytytin URL reititys tutoriaaliprojektiamme varten. Avaa application/config/routes.php ja muokkaa reittejä vastaamaan seuraavia:

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

Tässä:

  • $route['default_controller'] = 'Tervetuloa'; määrittää oletusohjaimen Tervetuloa.
  • $route['contacts'] = 'contacts'; määrittää contacts-reitin, joka kutsuu Contacts-ohjaimen index-metodia.
  • $route['create'] = 'contacts/create'; määrittää reitin create, joka osoittaa Contacts-ohjaimeen ja kutsuu create-metodia.
  • $route['edit/:id'] = 'contacts/edit'; määrittää reitin muokkauksen, joka hyväksyy id-parametrin ja osoittaa Contacts-ohjaimen muokkausmetodiin.
  • $route['update/:id'] = 'contacts/update'; määrittää reitin update, joka hyväksyy id-parametrin ja osoittaa Contacts-luokan update-metodiin.
  • $route['delete/:id'] = 'contacts/delete'; määrittää reitin poiston, joka hyväksyy id-parametrin ja osoittaa Contacts-ohjaimen delete-metodiin.

Seuraava taulukko näyttää kunkin URLedellä määritellyistä reiteistä johdetut s:t:

S / N Reitti vastaava URL
1 $route['default_controller'] = 'Tervetuloa'; http://localhost:3000
2 $route['contacts'] = 'yhteystiedot'; http://localhost:3000/contacts
3 $route['create'] = 'yhteystiedot/luo'; http://localhost:3000/contacts/create
4 $route['edit/:id'] = 'yhteystiedot/muokkaa'; http://localhost:3000/contacts/edit/1
5 $route['update/:id'] = 'yhteystiedot/päivitys'; http://localhost:3000/contacts/update/1
6 $route['delete/:id'] = 'yhteystiedot/poista'; http://localhost:3000/contacts/delete/1

Nyt kun olemme käyneet läpi reitit, luodaan Contacts-ohjain, joka vastaa reiteissä määritettyihin toimintoihin. Luo uusi tiedosto Contacts.php kansioon application/controllers/Contacts.php ja lisää siihen seuraava koodi:

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

Tässä:

  • luokka Yhteystiedot laajentaa CI_Controller-luokkaa {…} määrittelee ohjainluokkamme ja laajentaa sen mukana tulevaa CI_Controller-luokkaa CodeSytytin.
  • Yllä määritellyt metodit vastaavat määrittelemiämme reittejä, ja ne, joilla on parametrit kuten delete, hyväksyvät $id-parametrin.
  • Huomaa, että funktiot lataavat kolme näkymää. Ylätunniste ja alatunniste ovat yhteisiä kaikille metodeille. Keskimmäinen näkymä on toimintokohtainen, eli delete delete-funktiolle ja create create-funktiolle. Toinen tärkeä asia on muistaa, että näkymät ladataan yhteystiedot-alihakemistosta.

CodeSytytinnäkymät

Tarvitsemme vielä yhden askeleen ennen kuin voimme testata CodeSytytä reitit parametreilla verkkoselaimessa. Luodaan yllä olevia ohjainmetodeja vastaavat näkymät. Seuraava kuva näyttää, miltä sovellus tulee näyttämään:

CodeSytytyskontaktien sovelluksen esikatselu

Luo seuraavat tiedostot application/views-kansioon:

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

Luo uusi yhteystietohakemisto application/views-kansion (application/views/contacts) sisälle ja luo sen sisään seuraavat tiedostot:

index.php
create.php
edit.php

Tiedostorakenteen tulisi olla seuraava:

CodeSytytinnäkymät tiedostorakenteessa

Päivitetään nyt header.php-tiedosto:

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

Tässä:

  • Yllä oleva HTML-koodi lataa Bulma CSS:n CDN:stä.

Seuraava on footer.php-tiedoston koodi:

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

Lisätään nyt koodi yhteystietojen index.php-, edit.php- ja create.php-tiedostoille:

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>

Voit tallentaa kaikki tehdyt muutokset. Avaa seuraava URL verkkoselaimessasi: http://localhost:3000/contacts/Voit napsauttaa Uusi yhteystieto- ja Muokkaa yhteystietoa -linkkejä ja katsoa, ​​mitä tapahtuu.

UKK

Määrittele reitti paikkamerkillä, kuten edit/:id, ja hyväksy vastaava argumentti kontrollerin metodissa, esimerkiksi edit($id). CodeSytytin kulkee URL segmentoida kyseiseen argumenttiin.

CodeIgniter heittää page-not-found-poikkeuksen ja näyttää 404-sivun. Voit osoittaa 404_override-komennon omaan ohjaimeesi näyttääksesi mukautetun virhesivun.

site_url() luo täyden URL perus-URL-osoitteestasi ja reitistä, jotta linkit toimivat edelleen, vaikka sivusto siirtyisi tai peruspolku muuttuisi. Se tarvitsee URL apuohjelma ladataan ensin.

Kyllä. Resurssin, kuten yhteystietojen, nimestä tekoäly voi luoda indeksin sekä luoda, muokata, päivittää ja poistaa reittejä vastaavilla ohjainmetodeilla REST-käytäntöjä noudattaen. Vahvista parametrien nimet.

Ylätunnisteen ja alatunnisteen lataaminen erikseen välttää saman asettelun toistamisen jokaisella sivunäkymällä. Jokainen menetelmä lataa jaetun ylätunnisteen, tietyn sisältönäkymän ja sitten jaetun alatunnisteen.

Tiivistä tämä viesti seuraavasti: