CodeRute Penyala: URL Perutean dengan Contoh
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, maka, 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 โ dipetakan ke metode di pengontrol yang harus merespons permintaan URI.
- Parameter โ bagian ini opsional.
CodeContoh Rute Penyala
Sekarang mari kita lihat contoh praktisnya. URL Merutekan masuk CodeAlat penyala contoh.
Pertimbangkan yang berikut ini URL http://localhost:3000/contacts/edit/1
SINI,
- Nama pengontrol yang menanggapi hal di atas URL adalah โkontakโ
- Metode di kelas pengontrol Kontak adalah โeditโ
- Metode edit menerima parameter. Dalam contoh kita, nilai โ1โ diteruskan ke metode.
Berikut adalah latar belakang singkat tentang apa yang kami rencanakan untuk dilakukan:
- Rute โ routing bertanggung jawab untuk menanggapi URL permintaan. CodePencocokan Routing Igniter URL ke rute yang telah ditentukan sebelumnya. Jika tidak ditemukan kecocokan rute, maka CodeIgniter melempar pengecualian halaman tidak ditemukan.
- controller โ Rute dihubungkan ke controller. Controller menghubungkan model dan view. Controller meminta data/logika bisnis dari model dan mengembalikan hasilnya melalui presentasi view. Setelah itu, URL telah dicocokkan dengan Rute di CodeDi Igniter, permintaan tersebut diteruskan ke fungsi publik controller yang berinteraksi dengan sumber data, logika bisnis, dan mengembalikan tampilan yang menampilkan hasilnya.
- views โ pandangan bertanggung jawab untuk presentasi. Tampilan biasanya merupakan kombinasi HTML, CSS dan JavaNaskah. Ini adalah bagian yang bertanggung jawab untuk menampilkan halaman web kepada pengguna. Biasanya, data yang ditampilkan biasanya diambil dari database atau sumber data lain yang tersedia.
Untuk mempelajari cara mengimplementasikan router pada proyek dunia nyata, kita akan berasumsi bahwa kita sedang membuat aplikasi untuk mengelola detail kontak. Tabel berikut menunjukkan URLyang akan bekerja sama.
| 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, CodeRute Igniter, dan memetakannya ke nama controller dan method yang sesuai.
membuat URL Pengaturan Rute untuk Aplikasi
Mari berkreasi CodeAlat penyala URL Pengaturan rute untuk proyek tutorial kami
Buka aplikasi/config/routes.php
Ubah rute agar sesuai dengan yang berikut ini
$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'] = 'kontak'; mendefinisikan rute kontak yang memanggil metode indeks di pengontrol Kontak
- $route['create'] = 'kontak/buat'; mendefinisikan pembuatan rute yang menunjuk ke pengontrol Kontak dan memanggil metode pembuatan.
- $route['edit/:id'] = 'kontak/edit'; mendefinisikan pengeditan rute yang menerima parameter id dan menunjuk ke metode edit pengontrol Kontak
- $route['update/:id'] = 'kontak/update'; mendefinisikan pembaruan rute yang menerima parameter id dan menunjuk ke metode pembaruan kelas Kontak.
- $route['delete/:id'] = 'kontak/hapus'; mendefinisikan penghapusan rute yang menerima parameter id dan menunjuk ke metode penghapusan pengontrol Kontak.
Tabel berikut menunjukkan masing-masing URLs yang berasal dari rute yang telah 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 |
Sekarang kita telah membahas rutenya, mari kita buat pengontrol Kontak yang akan merespons tindakan yang ditentukan dalam rute.
Buat file Rute baru di CodeIgniter sebagai Contacts.php di application/controllers/Contacts.php
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,
- Kelas contacts extends CI_Controller {..} mendefinisikan kelas controller kita dan memperluas kelas CI_Controller yang disertakan CodeAlat penyala.
- Metode yang ditentukan di atas sesuai dengan rute yang kami tentukan dan metode dengan parameter seperti delete menerima parameter $id
- Perhatikan fungsi memuat tiga (3) tampilan. Header dan footer umum untuk semua metode. Tampilan tengah sangat spesifik untuk tindakan, yaitu hapus untuk fungsi hapus, buat tampilan untuk membuat fungsi, dll. Hal penting lainnya untuk diingat adalah bahwa tampilan diambil dari subdirektori kontak.
CodePandangan Igniter
Kita masih perlu mengambil satu langkah lagi sebelum kita dapat menguji CodeIgniter Routes dengan Parameter di browser web. Mari kita buat tampilan yang sesuai untuk metode controller di atas.
Gambar berikut menunjukkan seperti apa tampilan aplikasi Anda
Buat file berikut di application/views
header.php โ this file will contain contacts app menu and the header footer.php โ this files will contain the application footer.
Buat direktori kontak baru di tampilan aplikasi/tampilan/kontak
Buat file berikut di dalam
index.php create.php edit.php
Struktur file Anda harus sebagai berikut
Sekarang mari perbarui 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 Burma CSS dari jaringan CDN.
Berikut ini adalah kode untuk footer.php
</div>
</div>
</section>
</body>
</html>
Sekarang mari 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 browser web Anda http://localhost:3000/contacts/
Anda dapat mengklik tautan Kontak Baru dan Edit Kontak dan melihat apa yang terjadi
Ringkasan
- Rute di CI bertanggung jawab untuk menanggapi URL permintaan. Perutean cocok dengan URL ke rute yang telah ditentukan sebelumnya. Jika tidak ada CodeJika rute Igniter cocok, maka akan ditemukan kecocokan. CodeIgniter melempar pengecualian "halaman tidak ditemukan".
- CI Routing bertanggung jawab untuk menanggapi URL permintaan. Perutean cocok dengan URL ke rute yang telah ditentukan sebelumnya.
- Pengontrol merekatkan model dan tampilan menjadi satu. Permintaan data/logika bisnis dari model dan mengembalikan hasilnya melalui presentasi tampilan.
- Tampilan bertanggung jawab atas presentasi. Tampilan biasanya merupakan kombinasi HTML, CSS dan JavaNaskah.
- Dalam tutorial ini, kita telah mempelajari cara membuat Rute di CodeIgniter digunakan untuk contoh aplikasi dunia nyata dan mencakup dasar-dasar routing yang perlu Anda ketahui untuk memulai pengembangan.ping CodeAlat penyala.


