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.

  • 🧭 Aturan Inti: Suatu rute cocok dengan URL ke sebuah controller, method, dan parameter opsional.
  • 📐 Formula: Polanya adalah Controller/Method/Parameter, yang didefinisikan dalam application/config/routes.php.
  • 🏠 Rute Default: default_controller mengatur halaman beranda ketika tidak ada URL segmen diberikan.
  • 🔢 Parameter: Sebuah rute seperti edit/:id meneruskan nilai id ke dalam metode controller.
  • ️ Controller: Setiap rute dipetakan ke sebuah metode yang memuat tampilan yang sesuai.
  • ️ Pandangan Bersama: Tampilan header dan footer digunakan kembali, dengan tampilan tengah khusus untuk setiap tindakan.
  • ❓ 404 Penanganan: Tak tertandingi URL Menimbulkan pengecualian halaman tidak ditemukan, yang dapat diatasi dengan 404_override.

CodeRute Pemicu

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:

CodePratinjau aplikasi kontak Igniter

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:

CodeIgniter melihat struktur file.

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.

Pertanyaan Umum Demo Slot

Tentukan rute dengan placeholder seperti edit/:id, dan terima argumen yang sesuai di metode controller, misalnya edit($id). CodePenyala melewati URL bagian dalam argumen tersebut.

CodeIgniter melempar pengecualian halaman tidak ditemukan dan menampilkan halaman 404. Anda dapat mengarahkan 404_override ke controller Anda sendiri untuk menampilkan halaman kesalahan khusus sebagai gantinya.

site_url() membangun URL lengkap. URL dari base_url dan rute Anda, sehingga tautan tetap berfungsi jika situs dipindahkan atau jalur dasar berubah. Ini membutuhkan URL helper akan dimuat terlebih dahulu.

Ya. Dari nama sumber daya seperti kontak, AI dapat menghasilkan rute pengindeksan, pembuatan, pengeditan, pembaruan, dan penghapusan dengan metode pengontrol yang sesuai, mengikuti konvensi REST. Konfirmasikan nama parameternya.

Memuat header dan footer secara terpisah menghindari pengulangan tata letak yang sama di setiap tampilan halaman. Setiap metode memuat header bersama, tampilan konten tertentu, lalu footer bersama.

Ringkaslah postingan ini dengan: