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.
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:
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:
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.



