CodeTrasy zapłonnika: URL Trasowanie z przykładem
⚡ Inteligentne podsumowanie
CodeZapalnik URL Mapy trasowania URL do kontrolera i metody z opcjonalnym parametrem. Trasy są definiowane w pliku routes.php, więc czysty URL Podobnie jak contacts/edit/1 uruchamia metodę edycji kontrolera Contacts, która ładuje widoki nagłówka, treści i stopki.

Jakie są CodeTrasy zapłonu?
Trasy odpowiadają za reagowanie na URL żądania. Trasowanie pasuje do URL do predefiniowanych tras. Jeśli nie zostanie znaleziona żadna pasująca trasa, CodeIgniter zgłasza wyjątek „strona nie została znaleziona”.
Trasy w CodeZapłonnik definiuje się za pomocą poniższego wzoru:
example.com/Controller/Method/Parameter/
Tutaj:
- Kontroler jest mapowany na nazwę kontrolera, który powinien odpowiedzieć na URL.
- Metoda jest mapowana na metodę w kontrolerze, która powinna odpowiedzieć na żądanie URI.
- Parametr – ta sekcja jest opcjonalna.
CodePrzykład tras zapłonnika
Przyjrzyjmy się teraz praktycznemu URL routing w CodeZapalnik przykład. Rozważmy następujące URL: http://localhost:3000/contacts/edit/1
Tutaj:
- Nazwa kontrolera odpowiadającego na powyższe URL to „kontakty”.
- Metodą w klasie kontrolera Contacts jest „edit”.
- Metoda edycji akceptuje parametr. W naszym przykładzie do metody przekazywana jest wartość „1”.
Oto krótki zarys tego, co planujemy zrobić:
- Wyznaczanie tras – routing odpowiada na URL wnioski. CodeTrasowanie zapłonnika jest zgodne z URL do predefiniowanych tras. Jeśli nie zostanie znaleziona żadna pasująca trasa, CodeIgniter zgłasza wyjątek „strona nie została znaleziona”.
- Sterowniki – trasy są powiązane z kontrolerami. Kontrolery sklejają modele i widoki. Żądają danych i logiki biznesowej z modelu i zwracają wyniki za pośrednictwem prezentacji widoku. Po URL został dopasowany do trasy, jest przekazywany do publicznej funkcji kontrolera, która wchodzi w interakcję ze źródłem danych i logiką biznesową oraz zwraca widok.
- odwiedzajacy – widoki odpowiadają za prezentację. Widok jest zazwyczaj kombinacją HTML, CSS i JAVASCRIPTTa część odpowiada za wyświetlanie strony internetowej użytkownikowi. Zazwyczaj wyświetlane dane są pobierane z bazy danych lub innego źródła danych.
Aby dowiedzieć się, jak wdrożyć trasy w rzeczywistym projekcie, zakładamy, że tworzymy aplikację do zarządzania danymi kontaktowymi. Poniższa tabela przedstawia URLz którymi będziemy współpracować.
| S / N | URL | Trasa | kontroler | Metoda wykonania |
|---|---|---|---|---|
| 1 | / | $trasa['domyślny_kontroler'] | Witaj | wskaźnik |
| 2 | /Łączność | $trasa['kontakty'] | Kontakt | wskaźnik |
| 3 | /kontakty/utwórz | $trasa['utwórz'] | Kontakt | Stwórz |
| 4 | /kontakty/edytuj/identyfikator | $trasa['edycja/:id'] | Kontakt | edit |
| 5 | /kontakty/aktualizacja/identyfikator | $trasa['update/:id'] | Kontakt | aktualizacja |
| 6 | /kontakty/usuń/id | $trasa['usuń/:id'] | Kontakt | usunąć |
Utworzymy trasy naszej aplikacji na podstawie powyższej tabeli. Zdefiniowaliśmy URLs CodeTrasa Igniter i mapowanie ich na odpowiednie nazwy kontrolerów i metod.
Tworzenie URL Trasowanie dla aplikacji
Stwórzmy CodeZapalnik URL Trasowanie dla naszego projektu samouczka. Otwórz plik application/config/routes.php i zmodyfikuj trasy, aby odpowiadały następującym warunkom:
$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;
Tutaj:
- $route['default_controller'] = 'witaj'; definiuje domyślny kontroler Witamy.
- $route['contacts'] = 'contacts'; definiuje trasę kontaktów, która wywołuje metodę index w kontrolerze Contacts.
- $route['create'] = 'contacts/create'; definiuje trasę tworzenia wskazującą na kontroler Contacts i wywołuje metodę create.
- $route['edit/:id'] = 'contacts/edit'; definiuje edycję trasy, która akceptuje parametr id i wskazuje na metodę edycji kontrolera Contacts.
- $route['update/:id'] = 'contacts/update'; definiuje aktualizację trasy, która akceptuje parametr id i wskazuje na metodę update klasy Contacts.
- $route['delete/:id'] = 'contacts/delete'; definiuje trasę usuwania, która akceptuje parametr id i wskazuje na metodę delete kontrolera Contacts.
W poniższej tabeli przedstawiono odpowiednie URLpochodzące ze zdefiniowanych powyżej tras:
| S / N | Trasa | Odpowiedni URL |
|---|---|---|
| 1 | $route['default_controller'] = 'witaj'; | http://localhost:3000 |
| 2 | $route['kontakty'] = 'kontakty'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'kontakty/utwórz'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'kontakty/edytuj'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'kontakty/aktualizacja'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'kontakty/usuń'; | http://localhost:3000/contacts/delete/1 |
Skoro omówiliśmy już trasy, utwórzmy kontroler Contacts, który będzie reagował na akcje określone w trasach. Utwórz nowy plik Contacts.php w katalogu application/controllers/Contacts.php i dodaj następujący kod:
<?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'); } }
Tutaj:
- Klasa Contacts rozszerza CI_Controller {…} definiuje naszą klasę kontrolera i rozszerza klasę CI_Controller, która jest dostarczana z CodeZapalnik.
- Metody zdefiniowane powyżej odpowiadają trasom, które zdefiniowaliśmy, a te z parametrami, takimi jak delete, akceptują parametr $id.
- Zwróć uwagę, że funkcje ładują trzy widoki. Nagłówek i stopka są wspólne dla wszystkich metod. Widok środkowy jest specyficzny dla danej akcji, tj. „delete” dla funkcji „delete” i „create” dla funkcji „create”. Kolejną ważną rzeczą, o której należy pamiętać, jest to, że widoki są ładowane z podkatalogu „contacts”.
CodeWidoki zapłonnika
Potrzebujemy jeszcze jednego kroku, zanim będziemy mogli przetestować nasze CodeTrasy Ignitera z parametrami w przeglądarce internetowej. Utwórzmy widoki odpowiadające powyższym metodom kontrolera. Poniższy obrazek pokazuje, jak będzie wyglądać aplikacja:
Utwórz następujące pliki w aplikacji/widoki:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Utwórz nowy katalog contacts wewnątrz aplikacji/views (application/views/contacts) i utwórz w nim następujące pliki:
index.php create.php edit.php
Struktura plików powinna wyglądać następująco:
Zaktualizujmy teraz plik 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>
Tutaj:
- Powyższy kod HTML ładuje arkusz CSS Bulmy z CDN.
Poniżej znajduje się kod pliku footer.php:
</div> </div> </section> </body> </html>
Dodajmy teraz kod dla plików index.php, edit.php i create.php dla kontaktów:
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>
Możesz zapisać wszystkie wprowadzone zmiany. Otwórz następujące okno URL w Twojej przeglądarce internetowej: http://localhost:3000/contacts/Możesz kliknąć na odnośniki Nowy kontakt i Edytuj kontakt i zobaczyć, co się stanie.


