CodeМаршрути запалювання: URL Маршрутизація з прикладом
⚡ Розумний підсумок
CodeЗапалювач URL Карти маршрутів a URL до контролера та методу з необов'язковим параметром. Маршрути визначені в routes.php, тому чистий URL подібно до contacts/edit/1, запускає метод edit контролера Contacts, який завантажує подання заголовка, вмісту та нижнього колонтитула.

Які CodeМаршрути запалювання?
Маршрути відповідають за реагування на URL запити. Маршрутизація відповідає URL до попередньо визначених маршрутів. Якщо збіг маршруту не знайдено, CodeIgniter викидає виняток «сторінку не знайдено».
Маршрути в CodeЗапальники визначаються за формулою нижче:
example.com/Controller/Method/Parameter/
тут:
- Контролер зіставлено з ім'ям контролера, який має відповідати на URL.
- Метод відображається на метод у контролері, який має відповідати на запит URI.
- Параметр – цей розділ необов’язковий.
CodeПриклад маршрутів запалювання
Давайте тепер розглянемо практичний приклад URL маршрутизація в CodeЗапалювач приклад. Розглянемо наступне URL: http://localhost:3000/contacts/edit/1
тут:
- Ім'я контролера, який відповідає на вищезазначене URL це «контакти».
- Метод у класі контролера Contacts — «edit».
- Метод редагування приймає параметр. У нашому прикладі методу передається значення «1».
Ось короткий опис того, що ми плануємо зробити:
- Маршрутизація – маршрутизація відповідає URL запити. CodeМаршрутування запалювача відповідає URL до попередньо визначених маршрутів. Якщо збіг маршруту не знайдено, CodeIgniter викидає виняток «сторінку не знайдено».
- Контролери – маршрути пов’язані з контролерами. Контролери об’єднують моделі та представлення. Вони запитують дані та бізнес-логіку з моделі та повертають результати через представлення представлення. Після URL було зіставлено з маршрутом, він пересилається до публічної функції контролера, яка взаємодіє з джерелом даних та бізнес-логікою і повертає представлення.
- думки – погляди відповідають за презентацію. Перегляд зазвичай є комбінацією HTML, CSS і JavaScriptЦя частина відповідає за відображення веб-сторінки користувачеві. Зазвичай відображені дані отримуються з бази даних або іншого джерела даних.
Щоб навчитися реалізовувати маршрути в реальному проекті, ми припускаємо, що створюємо застосунок для керування контактними даними. У наступній таблиці показано URLз якими ми будемо працювати.
| S / N | URL | Маршрут | контролер | Метод |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | ласкаво просимо | індекс |
| 2 | /контакти | $route['contacts'] | Контакти | індекс |
| 3 | /контакти/створити | $route['create'] | Контакти | створювати |
| 4 | /contacts/edit/id | $route['edit/:id'] | Контакти | редагувати |
| 5 | /contacts/update/id | $route['update/:id'] | Контакти | оновлення |
| 6 | /contacts/delete/id | $route['delete/:id'] | Контакти | видаляти |
Ми створимо маршрути нашої програми на основі таблиці вище. Ми визначили URLs, CodeМаршрут Igniter та зіставив їх з відповідними іменами контролерів та методів.
створення URL Маршрутизація для застосунку
Давайте створимо CodeЗапалювач 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'] = 'вітаємо'; визначає контролер за замовчуванням Welcome.
- $route['contacts'] = 'contacts'; визначає маршрут контактів, який викликає метод index у контролері Contacts.
- $route['create'] = 'contacts/create'; визначає метод create маршруту, який вказує на контролер Contacts та викликає метод create.
- $route['edit/:id'] = 'contacts/edit'; визначає редагування маршруту, яке приймає параметр id та вказує на метод edit контролера Contacts.
- $route['update/:id'] = 'contacts/update'; визначає оновлення маршруту, яке приймає параметр id та вказує на метод update класу Contacts.
- $route['delete/:id'] = 'contacts/delete'; визначає маршрут видалення, який приймає параметр id та вказує на метод видалення контролера Contacts.
У наступній таблиці наведено відповідні URLотримані з маршрутів, визначених вище:
| 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, який реагуватиме на дії, зазначені в маршрутах. Створіть новий файл 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 extends CI_Controller {…} визначає наш клас контролера та розширює клас CI_Controller, який постачається з CodeЗапальник.
- Методи, визначені вище, відповідають маршрутам, які ми визначили, а ті, що мають параметри типу delete, приймають параметр $id.
- Зверніть увагу, що функції завантажують три представлення. Заголовок і нижній колонтитул є спільними для всіх методів. Середнє представлення є специфічним для дії, тобто delete для функції delete та create для функції create. Ще одна важлива річ, яку слід пам’ятати, це те, що представлення завантажуються з підкаталогу contacts.
CodeПерегляди запалювача
Нам потрібен ще один крок, перш ніж ми зможемо перевірити наші CodeМаршрути запальника з параметрами у веббраузері. Створимо представлення, що відповідають вищезазначеним методам контролера. На наступному зображенні показано, як виглядатиме застосунок:
Створіть такі файли в application/views:
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/Ви можете натиснути на посилання «Новий контакт» та «Редагувати контакт» і подивитися, що станеться.


