CodeRute Penyala: URL Perutean dengan Contoh
⚡ Ringkasan Cerdas
CodeAlat penyala URL Peta rute a URL ke controller dan method, dengan parameter opsional. Rute didefinisikan dalam routes.php, jadi kode yang bersih URL seperti contacts/edit/1 menjalankan metode edit dari controller Contacts, yang memuat tampilan header, konten, dan footer.

Apa CodeRute Pemicu?
Rute bertanggung jawab untuk menanggapi URL permintaan. Perutean cocok dengan URL ke rute yang telah ditentukan sebelumnya. Jika tidak ditemukan rute yang cocok, CodeIgniter melempar pengecualian halaman tidak ditemukan.
Rute di CodePemantik didefinisikan menggunakan rumus di bawah ini:
example.com/Controller/Method/Parameter/
Sini:
- Controller dipetakan ke nama controller yang seharusnya merespons URL.
- Metode tersebut dipetakan ke metode di controller yang seharusnya menanggapi permintaan URI.
- Parameter – bagian ini opsional.
CodeContoh Rute Penyala
Sekarang mari kita lihat contoh praktisnya. URL perutean di CodeAlat penyala Contoh. Perhatikan hal berikut ini. URL: http://localhost:3000/contacts/edit/1
Sini:
- Nama pengontrol yang menanggapi hal di atas URL adalah “kontak”.
- Metode dalam kelas controller Contacts adalah “edit”.
- Metode edit menerima sebuah parameter. Dalam contoh kita, nilai “1” diteruskan ke metode tersebut.
Berikut adalah latar belakang singkat tentang apa yang kami rencanakan untuk dilakukan:
- Rute – perutean merespons URL permintaan. CodePerutean Igniter sesuai dengan URL ke rute yang telah ditentukan sebelumnya. Jika tidak ditemukan rute yang cocok, CodeIgniter melempar pengecualian halaman tidak ditemukan.
- controller – Rute terhubung ke controller. Controller menghubungkan model dan view. Mereka meminta data dan logika bisnis dari model dan mengembalikan hasilnya melalui presentasi view. Setelah itu, URL Setelah dicocokkan dengan sebuah rute, data tersebut diteruskan ke fungsi publik pengontrol yang berinteraksi dengan sumber data dan logika bisnis, lalu mengembalikan tampilan.
- views – pandangan bertanggung jawab untuk presentasi. Tampilan biasanya merupakan kombinasi HTML, CSS, dan JavaNaskahBagian ini bertanggung jawab untuk menampilkan halaman web kepada pengguna. Biasanya, data yang ditampilkan diambil dari basis data atau sumber data lainnya.
Untuk mempelajari cara mengimplementasikan rute dalam proyek dunia nyata, kita berasumsi bahwa kita sedang membuat aplikasi untuk mengelola detail kontak. Tabel berikut menunjukkan URLseperti yang akan kita kerjakan.
| S / N | URL | Rute | pengawas | metode |
|---|---|---|---|---|
| 1 | / | $rute['default_controller'] | Selamat Datang | indeks |
| 2 | /kontak | $rute['kontak'] | kontak | indeks |
| 3 | /kontak/buat | $rute['buat'] | kontak | membuat |
| 4 | /kontak/edit/id | $rute['edit/:id'] | kontak | mengedit |
| 5 | /kontak/perbarui/id | $rute['perbarui/:id'] | kontak | memperbarui |
| 6 | /kontak/hapus/id | $rute['hapus/:id'] | kontak | hapus |
Kita akan membuat rute aplikasi kita berdasarkan tabel di atas. Kita telah mendefinisikan URLs, itu CodeRute Igniter, dan memetakannya ke nama controller dan method yang sesuai.
membuat URL Pengaturan Rute untuk Aplikasi
Mari kita ciptakan CodeAlat penyala URL Pengaturan routing untuk proyek tutorial kita. Buka application/config/routes.php dan ubah rute agar sesuai dengan yang berikut:
$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;
Sini:
- $route['default_controller'] = 'selamat datang'; mendefinisikan pengontrol default Selamat Datang.
- $route['contacts'] = 'contacts'; mendefinisikan rute kontak yang memanggil metode index di controller Kontak.
- $route['create'] = 'contacts/create'; mendefinisikan rute create yang mengarah ke controller Contacts dan memanggil metode create.
- $route['edit/:id'] = 'contacts/edit'; mendefinisikan rute edit yang menerima parameter id dan mengarah ke metode edit dari controller Contacts.
- $route['update/:id'] = 'contacts/update'; mendefinisikan rute pembaruan yang menerima parameter id dan mengarah ke metode pembaruan dari kelas Contacts.
- $route['delete/:id'] = 'contacts/delete'; mendefinisikan rute penghapusan yang menerima parameter id dan mengarah ke metode penghapusan pada controller Contacts.
Tabel berikut menunjukkan masing-masing URLs yang berasal dari rute yang didefinisikan di atas:
| S / N | Rute | Sesuai URL |
|---|---|---|
| 1 | $route['default_controller'] = 'selamat datang'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'kontak'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'kontak/buat'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'kontak/edit'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'kontak/update'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'kontak/hapus'; | http://localhost:3000/contacts/delete/1 |
Setelah membahas rute-rute tersebut, mari kita buat controller Kontak yang akan merespons aksi-aksi yang ditentukan dalam rute. Buat file baru Contacts.php di application/controllers/Contacts.php dan tambahkan kode berikut:
<?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'); } }
Sini:
- class Contacts extends CI_Controller {…} mendefinisikan kelas controller kita dan memperluas kelas CI_Controller yang disertakan CodeAlat penyala.
- Metode yang didefinisikan di atas sesuai dengan rute yang telah kita definisikan, dan metode dengan parameter seperti delete menerima parameter $id.
- Perhatikan bahwa fungsi-fungsi tersebut memuat tiga tampilan. Header dan footer umum untuk semua metode. Tampilan tengah khusus untuk tindakan tersebut, misalnya hapus untuk fungsi hapus dan buat untuk fungsi buat. Hal penting lainnya yang perlu diingat adalah bahwa tampilan dimuat dari subdirektori kontak.
CodePandangan Igniter
Kita masih membutuhkan satu langkah lagi sebelum kita dapat menguji CodeIgniter mengatur rute dengan parameter di browser web. Mari kita buat tampilan yang sesuai dengan metode controller di atas. Gambar berikut menunjukkan tampilan aplikasi:
Buat file-file berikut di dalam folder application/views:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
Buat direktori baru bernama contacts di dalam application/views (application/views/contacts) dan buat file-file berikut di dalamnya:
index.php create.php edit.php
Struktur file Anda seharusnya sebagai berikut:
Sekarang mari kita perbarui file 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>
Sini:
- Kode HTML di atas memuat CSS Bulma dari CDN.
Berikut adalah kode untuk file footer.php:
</div> </div> </section> </body> </html>
Sekarang mari kita tambahkan kode untuk file index.php, edit.php, dan create.php untuk kontak:
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>
Anda dapat menyimpan semua perubahan yang telah dilakukan. Buka yang berikut ini URL di peramban web Anda: http://localhost:3000/contacts/Anda dapat mengklik tautan Kontak Baru dan Edit Kontak dan melihat apa yang terjadi.


