CodeΔιαδρομές ανάφλεξης: URL Δρομολόγηση με παράδειγμα
⚡ Έξυπνη Σύνοψη
CodeIgniter URL Χάρτες δρομολόγησης a URL σε έναν ελεγκτή και μια μέθοδο, με μια προαιρετική παράμετρο. Οι διαδρομές ορίζονται στο routes.php, επομένως ένα καθαρό URL Όπως και η εντολή contacts/edit/1, εκτελεί τη μέθοδο επεξεργασίας του ελεγκτή Επαφών, η οποία φορτώνει προβολές κεφαλίδας, περιεχομένου και υποσέλιδου.

Τι είναι CodeΔιαδρομές ανάφλεξης;
Οι διαδρομές είναι υπεύθυνες για την ανταπόκριση σε URL αιτήματα. Η δρομολόγηση ταιριάζει με το URL στις προκαθορισμένες διαδρομές. Εάν δεν βρεθεί καμία αντίστοιχη διαδρομή, CodeΤο Igniter εμφανίζει μια εξαίρεση "η σελίδα δεν βρέθηκε".
Διαδρομές σε CodeΟ αναφλεκτήρας ορίζεται χρησιμοποιώντας τον παρακάτω τύπο:
example.com/Controller/Method/Parameter/
Εδώ:
- Ο ελεγκτής αντιστοιχίζεται στο όνομα του ελεγκτή που θα πρέπει να ανταποκρίνεται στο URL.
- Η μέθοδος αντιστοιχίζεται στη μέθοδο στον ελεγκτή που θα πρέπει να ανταποκριθεί στο αίτημα URI.
- Παράμετρος – αυτή η ενότητα είναι προαιρετική.
CodeΠαράδειγμα Διαδρομών Έναυσης
Ας δούμε τώρα μια πρακτική URL δρομολόγηση σε CodeIgniter παράδειγμα. Σκεφτείτε τα εξής URL: http://localhost:3000/contacts/edit/1
Εδώ:
- Το όνομα του ελεγκτή που απαντά στα παραπάνω URL είναι οι «επαφές».
- Η μέθοδος στην κλάση ελεγκτή Contacts είναι "edit".
- Η μέθοδος επεξεργασίας δέχεται μια παράμετρο. Στο παράδειγμά μας, η τιμή "1" μεταβιβάζεται στη μέθοδο.
Ακολουθεί ένα σύντομο υπόβαθρο του τι σκοπεύουμε να κάνουμε:
- Δρομολόγηση – η δρομολόγηση ανταποκρίνεται σε URL αιτήματα. CodeΗ δρομολόγηση του αναφλεκτήρα ταιριάζει με URL στις προκαθορισμένες διαδρομές. Εάν δεν βρεθεί καμία αντίστοιχη διαδρομή, CodeΤο Igniter εμφανίζει μια εξαίρεση "η σελίδα δεν βρέθηκε".
- ελεγκτές – οι διαδρομές συνδέονται με ελεγκτές. Οι ελεγκτές συγκολλούν τα μοντέλα και τις προβολές. Ζητούν δεδομένα και επιχειρηματική λογική από το μοντέλο και επιστρέφουν τα αποτελέσματα μέσω της παρουσίασης της προβολής. Μόλις ένα URL έχει αντιστοιχιστεί με μια διαδρομή, προωθείται σε μια δημόσια συνάρτηση ελεγκτή που αλληλεπιδρά με την πηγή δεδομένων και την επιχειρηματική λογική και επιστρέφει την προβολή.
- Προβολές – οι απόψεις είναι υπεύθυνες για την παρουσίαση. Μια προβολή είναι συνήθως ένας συνδυασμός HTML, CSS και JavaΓραφήΑυτό το μέρος είναι υπεύθυνο για την εμφάνιση της ιστοσελίδας στον χρήστη. Συνήθως, τα δεδομένα που εμφανίζονται ανακτώνται από τη βάση δεδομένων ή από άλλη πηγή δεδομένων.
Για να μάθουμε πώς να υλοποιούμε διαδρομές σε ένα πραγματικό έργο, υποθέτουμε ότι δημιουργούμε μια εφαρμογή για τη διαχείριση στοιχείων επικοινωνίας. Ο παρακάτω πίνακας δείχνει τα URLμε τα οποία θα συνεργαστούμε.
| S / N | URL | Διαδρομή | ελεγκτής | Μέθοδος |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | Καλωσήρθατε | ευρετήριο |
| 2 | /επαφές | $route['επαφές'] | Επικοινωνια | ευρετήριο |
| 3 | /επαφές/δημιουργία | $route['create'] | Επικοινωνια | δημιουργία |
| 4 | /contacts/edit/id | $route['edit/:id'] | Επικοινωνια | Επεξεργασία |
| 5 | /επαφές/ενημέρωση/αναγνωριστικό | $route['update/:id'] | Επικοινωνια | ενημέρωση |
| 6 | /επαφές/διαγραφή/αναγνωριστικό | $route['delete/:id'] | Επικοινωνια | διαγράψετε |
Θα δημιουργήσουμε τις διαδρομές της εφαρμογής μας με βάση τον παραπάνω πίνακα. Έχουμε ορίσει το URLs, το Codeδιαδρομή του Igniter και τις αντιστοίχισε στα αντίστοιχα ονόματα ελεγκτή και μεθόδου.
δημιουργία URL Δρομολόγηση για την εφαρμογή
Ας δημιουργήσουμε CodeIgniter URL δρομολόγηση για το εκπαιδευτικό μας έργο. Ανοίξτε το application/config/routes.php και τροποποιήστε τις διαδρομές ώστε να ταιριάζουν με τις ακόλουθες:
$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;
Εδώ:
- $route['default_controller'] = 'καλώς ήρθατε'; ορίζει τον προεπιλεγμένο ελεγκτή Καλώς ορίσατε.
- $route['contacts'] = 'contacts'; ορίζει μια διαδρομή επαφών που καλεί τη μέθοδο ευρετηρίου στον ελεγκτή Επαφών.
- $route['create'] = 'contacts/create'; ορίζει μια διαδρομή create που δείχνει στον ελεγκτή Επαφών και καλεί τη μέθοδο create.
- $route['edit/:id'] = 'contacts/edit'; ορίζει μια επεξεργασία διαδρομής που δέχεται μια παράμετρο id και δείχνει στη μέθοδο επεξεργασίας του ελεγκτή Επαφών.
- $route['update/:id'] = 'contacts/update'; ορίζει μια ενημέρωση διαδρομής που δέχεται μια παράμετρο id και δείχνει στη μέθοδο ενημέρωσης της κλάσης Contacts.
- $route['delete/:id'] = 'contacts/delete'; ορίζει μια διαδρομή διαγραφής που δέχεται μια παράμετρο id και δείχνει στη μέθοδο διαγραφής του ελεγκτή Επαφών.
Ο παρακάτω πίνακας δείχνει τα αντίστοιχα URLs που προκύπτουν από τις διαδρομές που ορίζονται παραπάνω:
| S / N | Διαδρομή | Αντίστοιχος URL |
|---|---|---|
| 1 | $route['default_controller'] = 'καλώς ήρθατε'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'επαφές'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'επαφές/δημιουργία'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'επαφές/επεξεργασία'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'επαφές/ενημέρωση'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'επαφές/διαγραφή'; | http://localhost:3000/contacts/delete/1 |
Τώρα που καλύψαμε τις διαδρομές, ας δημιουργήσουμε τον ελεγκτή Επαφών που θα ανταποκρίνεται στις ενέργειες που καθορίζονται στις διαδρομές. Δημιουργήστε ένα νέο αρχείο Contacts.php στο application/controllers/Contacts.php και προσθέστε τον ακόλουθο κώδικα:
<?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'); } }
Εδώ:
- Η κλάση Contacts επεκτείνει την CI_Controller {…} ορίζει την κλάση ελεγκτή μας και επεκτείνει την κλάση CI_Controller που συνοδεύει την CodeΑναπτήρ.
- Οι μέθοδοι που ορίστηκαν παραπάνω αντιστοιχούν στις διαδρομές που ορίσαμε και εκείνες με παραμέτρους όπως η delete δέχονται μια παράμετρο $id.
- Παρατηρήστε ότι οι συναρτήσεις φορτώνουν τρεις προβολές. Η κεφαλίδα και το υποσέλιδο είναι κοινά για όλες τις μεθόδους. Η μεσαία προβολή είναι συγκεκριμένη για την ενέργεια, δηλαδή διαγραφή για τη συνάρτηση διαγραφής και δημιουργία για τη συνάρτηση δημιουργίας. Ένα άλλο σημαντικό πράγμα που πρέπει να θυμάστε είναι ότι οι προβολές φορτώνονται από τον υποκατάλογο επαφών.
CodeΠροβολές Igniter
Χρειαζόμαστε ακόμα ένα βήμα πριν μπορέσουμε να δοκιμάσουμε το CodeΔιαδρομές του Igniter με παραμέτρους στο πρόγραμμα περιήγησης ιστού. Ας δημιουργήσουμε τις προβολές που αντιστοιχούν στις παραπάνω μεθόδους ελεγκτή. Η ακόλουθη εικόνα δείχνει πώς θα μοιάζει η εφαρμογή:
Δημιουργήστε τα ακόλουθα αρχεία σε εφαρμογή/προβολές:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Δημιουργήστε έναν νέο κατάλογο επαφών μέσα στο application/views (application/views/contacts) και δημιουργήστε τα ακόλουθα αρχεία μέσα σε αυτόν:
index.php create.php edit.php
Η δομή του αρχείου σας θα πρέπει να έχει ως εξής:
Ας ενημερώσουμε τώρα το αρχείο 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>
Εδώ:
- Ο παραπάνω κώδικας HTML φορτώνει το CSS της Bulma από ένα CDN.
Ο παρακάτω κώδικας είναι για το αρχείο footer.php:
</div> </div> </section> </body> </html>
Ας προσθέσουμε τώρα τον κώδικα για τα αρχεία index.php, edit.php και create.php για τις επαφές:
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>
Μπορείτε να αποθηκεύσετε όλες τις αλλαγές που έχουν γίνει. Ανοίξτε τα παρακάτω URL στο πρόγραμμα περιήγησής σας στο διαδίκτυο: http://localhost:3000/contacts/Μπορείτε να κάνετε κλικ στους συνδέσμους Νέα επαφή και Επεξεργασία επαφής και να δείτε τι θα συμβεί.


