CodeМаршрути запалювання: URL Маршрутизація з прикладом

Які CodeМаршрути запалювання?

Маршрути відповідають за реагування на URL запити. Маршрутизація відповідає URL до попередньо визначених маршрутів. Якщо збіг маршруту не знайдено, тоді CodeIgniter видає виняток «сторінку не знайдено».

Маршрути в CodeЗапальники визначаються за допомогою наведеної нижче формули:

example.com/Controller/Method/Parameter/

ТУТ,

  • Контролер - відповідає імені контролера, який має відповідати на URL.
  • Метод – зіставляється з методом у контролері, який має відповідати на запит URI.
  • Параметр – цей розділ необов’язковий.

CodeПриклад маршрутів запалювання

Давайте тепер розглянемо практичний приклад URL Маршрутизація в CodeЗапалювач приклад.

Розглянемо наступне URL http://localhost:3000/contacts/edit/1

ТУТ,

  • Ім'я контролера, який відповідає на вищезазначене URL це «контакти»
  • Метод у класі контролера Contacts — «редагувати»
  • Метод редагування приймає параметр. У нашому прикладі методу передається значення «1».

Ось короткий опис того, що ми плануємо зробити:

  • Маршрутизація – маршрутизація відповідає за реагування на URL запити. CodeМаршрутизація запальника відповідає URL до попередньо визначених маршрутів. Якщо збіг маршруту не знайдено, то CodeIgniter викидає виняток «сторінку не знайдено».
  • Контролери – маршрути пов’язані з контролерами. Контролери об’єднують моделі та представлення. Запит даних/бізнес-логіки з моделі та повернення результатів через представлення представлень. Після URL зіставлено з маршрутом у CodeIgniter, він пересилається до публічної функції контролера, яка взаємодіє з джерелом даних, бізнес-логікою та повертає вигляд, що відображає результати.
  • думки – погляди відповідають за презентацію. Перегляд зазвичай є комбінацією 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'] = 'контакти'; визначає маршрут контактів, який викликає метод індексу в контролері контактів
  • $route['create'] = 'контакти/створити'; визначає маршрут create, який вказує на контролер Contacts і викликає метод create.
  • $route['edit/:id'] = 'контакти/редагувати'; визначає редагування маршруту, який приймає параметр id і вказує на метод редагування контролера контактів
  • $route['update/:id'] = 'контакти/оновлення'; визначає оновлення маршруту, яке приймає параметр id і вказує на метод оновлення класу Contacts.
  • $route['delete/:id'] = 'контакти/видалити'; визначає маршрут видалення, який приймає параметр id і вказує на метод видалення контролера контактів.

У наступній таблиці наведено відповідні 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

Тепер, коли ми розглянули маршрути, давайте створимо контролер контактів, який реагуватиме на дії, зазначені в маршрутах.

Створіть новий файл маршруту в CodeЗапалювач як 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
  • Зверніть увагу, що функції завантажують три (3) представлення. Верхній і нижній колонтитули загальні для всіх методів. Середнє подання є дуже специфічним для дії, тобто видалення для функції видалення, створення подання для створення функції тощо. Ще одна важлива річ, про яку слід пам’ятати, це те, що подання завантажуються з підкаталогу контактів.

CodeПерегляди запалювача

Нам потрібно зробити ще один крок, перш ніж ми зможемо перевірити наші CodeМаршрути запалювача з параметрами у веббраузері. Давайте створимо відповідні представлення для вищезазначених методів контролера.

На наступному зображенні показано, як виглядатиме ваша програма

CodeПерегляди запалювача

Створіть наступні файли в додатку/переглядах

header.php – this file will contain contacts app menu and the header
footer.php – this files will contain the application footer.

Створіть новий каталог контактів у Views Application/Views/Contacts

Створіть усередині такі файли

index.php
create.php
edit.php

Структура файлу має бути такою

CodeПерегляди запалювача

Давайте тепер оновимо 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-код завантажує Burma CSS із мережі 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/

Ви можете натиснути посилання Новий контакт і Редагувати контакт і подивитися, що станеться

Резюме

  • Маршрути в CI відповідають за реагування на URL запити. Маршрутизація відповідає URL до попередньо визначених маршрутів. Якщо ні CodeЗбіг маршруту запалювання знайдено тоді, CodeIgniter видає виняток «сторінку не знайдено».
  • Маршрутизація CI відповідає за реагування на URL запити. Маршрутизація відповідає URL до заздалегідь визначених маршрутів.
  • Контролери склеюють моделі та види разом. Запит даних/бізнес-логіки від моделі та повернення результатів через представлення представлень.
  • За презентацію відповідають погляди. Перегляд зазвичай є комбінацією HTML, CSS і JavaСценарій.
  • У цьому посібнику ми навчилися створювати маршрути в CodeIgniter для прикладу реального застосування та розглянув основи маршрутизації, які потрібно знати для початку розробкиping CodeЗапальник.

Підсумуйте цей пост за допомогою: