CodeМаршруты запуска: URL Маршрутизация на примере
⚡ Умное резюме
Codeвоспламенитель URL Карты маршрутизации URL к контроллеру и методу с необязательным параметром. Маршруты определены в файле routes.php, поэтому чистый код будет работать. URL Например, contacts/edit/1 запускает метод edit контроллера Contacts, который загружает представления заголовка, содержимого и нижнего колонтитула.

Каковы CodeМаршруты зажигания?
Маршруты отвечают за реагирование на URL запросы. Маршрутизация соответствует URL к предопределенным маршрутам. Если совпадение с маршрутом не найдено, CodeIgniter выдает исключение "страница не найдена".
Маршруты в CodeИнициаторы зажигания определяются по формуле, приведенной ниже:
example.com/Controller/Method/Parameter/
Вот:
- Контроллер сопоставляется с именем контроллера, который должен отвечать на запрос. URL.
- Метод сопоставляется с методом в контроллере, который должен отвечать на URI-запрос.
- Параметр – этот раздел не является обязательным.
CodeПример маршрутов Igniter
Теперь давайте рассмотрим практический аспект. URL маршрутизация Codeвоспламенитель пример. Рассмотрим следующее. URL: http://localhost:3000/contacts/edit/1
Вот:
- Имя контроллера, отвечающего на вышеуказанное сообщение. URL это «контакты».
- В классе контроллера Contacts есть метод “edit”.
- Метод редактирования принимает параметр. В нашем примере методу передается значение «1».
Вот краткая предыстория того, что мы планируем сделать:
- Фрезеровка – маршрутизация отвечает на URL запросы. CodeМаршрутизация воспламенителя соответствует URL к предопределенным маршрутам. Если совпадение с маршрутом не найдено, CodeIgniter выдает исключение "страница не найдена".
- Контроллеры – Маршруты связаны с контроллерами. Контроллеры связывают модели и представления. Они запрашивают данные и бизнес-логику у модели и возвращают результаты через представление. После этого URL Если объект сопоставлен с маршрутом, он перенаправляется в публичную функцию контроллера, которая взаимодействует с источником данных и бизнес-логикой и возвращает представление.
- Виды – представления отвечают за представление. Представление обычно представляет собой комбинацию HTML, CSS и JavaСценарийЭта часть отвечает за отображение веб-страницы пользователю. Как правило, отображаемые данные извлекаются из базы данных или другого источника данных.
Чтобы научиться реализовывать маршруты в реальном проекте, предположим, что мы создаём приложение для управления контактными данными. В следующей таблице показано... URLс которыми мы будем работать.
| S / N | URL | Маршрут | Контроллер | Способ доставки |
|---|---|---|---|---|
| 1 | / | $route['default_controller'] | Добро пожаловать | индекс |
| 2 | / контакты | $route['контакты'] | Контакты | индекс |
| 3 | /контакты/создать | $route['создать'] | Контакты | Создайте |
| 4 | /контакты/редактировать/идентификатор | $route['edit/:id'] | Контакты | отредактировать |
| 5 | /контакты/обновление/идентификатор | $route['update/:id'] | Контакты | обновление |
| 6 | /контакты/удалить/идентификатор | $route['delete/:id'] | Контакты | удалять |
Мы создадим маршруты нашего приложения на основе приведенной выше таблицы. Мы определили... URLс 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'] = 'добро пожаловать'; определяет приветствие контроллера по умолчанию.
- $route['contacts'] = 'contacts'; определяет маршрут контактов, который вызывает метод index в контроллере Contacts.
- $route['create'] = 'contacts/create'; определяет маршрут create, который указывает на контроллер Contacts и вызывает метод create.
- `$route['edit/:id'] = 'contacts/edit';` определяет маршрут `edit`, который принимает параметр `id` и указывает на метод `edit` контроллера `Contacts`.
- Параметр `$route['update/:id'] = 'contacts/update';` определяет обновление маршрута, которое принимает параметр `id` и указывает на метод `update` класса `Contacts`.
- Параметр `$route['delete/:id'] = 'contacts/delete';` определяет маршрут удаления, который принимает параметр `id` и указывает на метод `delete` контроллера `Contacts`.
В следующей таблице показаны соответствующие URLs, полученные из указанных выше маршрутов:
| S / N | Маршрут | соответствующий URL |
|---|---|---|
| 1 | $route['default_controller'] = 'добро пожаловать'; | http://localhost:3000 |
| 2 | $route['контакты'] = 'контакты'; | 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'); } }
Вот:
- class Contacts extends CI_Controller {…} определяет наш класс контроллера и расширяет класс CI_Controller, который поставляется вместе с ним. CodeВоспламенитель.
- Описанные выше методы соответствуют определенным нами маршрутам, а методы с параметрами, например, delete, принимают параметр $id.
- Обратите внимание, что функции загружают три представления. Заголовок и нижний колонтитул являются общими для всех методов. Среднее представление зависит от действия, например, удаление для функции удаления и создание для функции создания. Ещё один важный момент: представления загружаются из подкаталога контактов.
CodeВзгляды Игнитера
Нам нужен еще один шаг, прежде чем мы сможем протестировать наш CodeСоздание маршрутов Igniter с параметрами в веб-браузере. Давайте создадим представления, соответствующие методам контроллера, описанным выше. На следующем изображении показано, как будет выглядеть приложение:
Создайте следующие файлы в папке application/views:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Создайте новую директорию contacts внутри папки 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/Вы можете нажать на ссылки «Новый контакт» и «Редактировать контакт» и посмотреть, что произойдет.


