Rute CodeIgniter: Perutean URL dengan Contoh
Apa itu Rute CodeIgniter?
Rute bertanggung jawab untuk menanggapi permintaan URL. Perutean mencocokkan URL dengan rute yang telah ditentukan sebelumnya. Jika tidak ditemukan kecocokan rute, CodeIgniter menampilkan halaman tidak ditemukan pengecualian.
Rute di CodeIgniter ditentukan menggunakan rumus di bawah ini:
example.com/Controller/Method/Parameter/
SINI,
- Pengontrol -dipetakan ke nama pengontrol yang harus merespons URL.
- Metode – dipetakan ke metode di pengontrol yang harus merespons permintaan URI.
- Parameter – bagian ini opsional.
Contoh Rute CodeIgniter
Sekarang mari kita lihat Perutean URL praktis CodeIgniter contoh.
Pertimbangkan URL berikut ini http://localhost:3000/contacts/edit/1
SINI,
- Nama pengontrol yang merespons URL di atas 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 – perutean bertanggung jawab untuk menanggapi permintaan URL. Routing CodeIgniter mencocokkan URL dengan rute yang telah ditentukan sebelumnya. Jika tidak ditemukan kecocokan rute maka CodeIgniter menampilkan pengecualian halaman tidak ditemukan.
- controller – rute ditautkan ke pengontrol. Pengontrol merekatkan model dan tampilan menjadi satu. Permintaan data/logika bisnis dari model dan mengembalikan hasilnya melalui presentasi tampilan. Setelah URL dicocokkan dengan Route di CodeIgniter, URL tersebut diteruskan ke fungsi publik pengontrol 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 di dunia nyata, kami akan berasumsi bahwa kami sedang membuat aplikasi untuk mengelola detail kontak. Tabel berikut menunjukkan URL yang akan digunakan.
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 |
Kami akan membuat rute aplikasi kami berdasarkan tabel di atas. Kami telah mendefinisikan URL, rute CodeIgniter, dan memetakannya ke masing-masing pengontrol dan nama metode.
Membuat Perutean URL untuk Aplikasi
Mari buat Perutean URL CodeIgniter untuk proyek tutorial kita
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 URL masing-masing yang berasal dari rute yang ditentukan di atas
S / N | Rute | URL yang sesuai |
---|---|---|
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 Route 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,
- Kontak kelas extends CI_Controller {..} mendefinisikan kelas pengontrol kami dan memperluas kelas CI_Controller yang disertakan dengan CodeIgniter.
- 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.
Tampilan CodeIgniter
Kita masih perlu mengambil satu langkah lagi sebelum kita dapat menguji Rute CodeIgniter dengan Parameter di browser web. Mari buat tampilan yang sesuai dengan metode pengontrol 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 URL berikut di browser web Anda http://localhost:3000/contacts/
Anda dapat mengklik tautan Kontak Baru dan Edit Kontak dan melihat apa yang terjadi
Kesimpulan
- Rute di CI bertanggung jawab untuk menanggapi permintaan URL. Perutean mencocokkan URL dengan rute yang telah ditentukan sebelumnya. Jika tidak ditemukan kecocokan Rute CodeIgniter, CodeIgniter menampilkan halaman tidak ditemukan pengecualian.
- CI Routing bertanggung jawab untuk menanggapi permintaan URL. Perutean mencocokkan URL dengan 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 Routes di CodeIgniter untuk contoh aplikasi dunia nyata dan membahas dasar-dasar routing yang perlu Anda ketahui untuk mulai mengembangkan CodeIgniter.