CodeМаршруты запуска: URL Маршрутизация на примере

⚡ Умное резюме

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

  • 🧭 Основное правило: Маршрут соответствует URL к контроллеру, методу и необязательному параметру.
  • 📐 Формула: Шаблон — Контроллер/Метод/Параметр, определенный в файле application/config/routes.php.
  • 🏠 Маршрут по умолчанию: Параметр default_controller устанавливает домашнюю страницу, если она не задана. URL Представлен фрагмент.
  • 🔢 Параметры: Маршрут, например, edit/:id, передает значение id в метод контроллера.
  • 🇧🇷 контроллер: Каждый маршрут соответствует методу, который загружает соответствующие представления.
  • 🖼️ Общие мнения: Встраивание верхнего и нижнего колонтитулов повторяется, при этом для каждого действия используется свой отдельный средний элемент.
  • 404 Обращение: Непревзойденный URL Вызывает исключение "страница не найдена", которое можно переопределить с помощью параметра 404_override.

CodeМаршруты зажигания

Каковы 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 с параметрами в веб-браузере. Давайте создадим представления, соответствующие методам контроллера, описанным выше. На следующем изображении показано, как будет выглядеть приложение:

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

Структура ваших файлов должна быть следующей:

CodeСтруктура файлов представлений Igniter

Теперь давайте обновим файл 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/Вы можете нажать на ссылки «Новый контакт» и «Редактировать контакт» и посмотреть, что произойдет.

Часто задаваемые вопросы (FAQ)

Определите маршрут с помощью заполнителя, например, edit/:id, и принимайте соответствующий аргумент в методе контроллера, например, edit($id). CodeЗажигатель проходит URL сегмент в этот аргумент.

CodeIgniter генерирует исключение "страница не найдена" и отображает страницу 404. Вы можете указать в параметре 404_override собственный контроллер, чтобы вместо этого отобразить пользовательскую страницу ошибки.

Функция site_url() формирует полный URL-адрес. URL Это зависит от вашего base_url и маршрута, поэтому ссылки будут продолжать работать, если сайт переместится или изменится базовый путь. Это необходимо. URL Вспомогательная программа должна быть загружена первой.

Да. На основе имени ресурса, например, «контакты», ИИ может создать индекс, а также маршруты для создания, редактирования, обновления и удаления, соответствующие методам контроллера, в соответствии с соглашениями REST. Подтвердите имена параметров.

Загрузка заголовка и нижнего колонтитула по отдельности позволяет избежать повторения одного и того же макета на каждой странице. Каждый метод загружает сначала общий заголовок, затем конкретный элемент контента, а затем общий нижний колонтитул.

Подведем итог этой публикации следующим образом: