Sebagai salah satu framework PHP yang populer, CodeIgniter 3 memiliki berbagai fitur yang memudahkan pengembangan aplikasi web. Salah satu fitur pentingnya adalah Router. Router digunakan untuk menangani URL yang diminta oleh pengguna, memetakan URL ke metode controller yang membentuk aplikasi web.
Pada artikel kali ini akan dijelaskan cara membuat router pada CodeIgniter 3. Berikut adalah langkah-langkahnya.
Buat sebuah file pada direktori application/config
dengan nama routes.php jika belum ada
.
Buka file routes.php
dan tambahkan kode berikut:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
// tambahkan Routes di bawah ini
Kode tersebut adalah konfigurasi default yang telah disediakan oleh CodeIgniter. $route
adalah array yang digunakan untuk membuat route pada aplikasi. $route['default_controller']
menentukan default controller yang akan dijalankan jika tidak ada controller yang didefinisikan pada URL. $route['404_override']
akan dijalankan jika controller yang diminta tidak ditemukan. $route['translate_uri_dashes']
mengatur apakah tanda - pada URI akan diubah menjadi tanda underscore.
Setelah itu, tambahkan kode di bawah ini untuk menentukan route:
$route['greeting'] = 'welcome/greeting';
Kode tersebut menunjukkan bahwa jika pengguna meminta URL http://localhost/nama_project/greeting
, maka akan memanggil method greeting
pada controller welcome
.
Untuk menentukan route dengan parameter, tambahkan kode di bawah ini:
$route['blog/(:num)'] = 'blog/$1';
Kode tersebut artinya jika pengguna mengunjungi URL http://localhost/nama_project/blog/1
, maka akan memanggil method $1
(bernilai 1) pada controller blog
.
Parameter (:num)
menunjukkan bahwa URL tersebut mengandung parameter bernilai numerik. Jika ingin membuat parameter dengan tipe data lain, menggunakan kode berikut:
$route['blog/(:any)'] = 'blog/$1';
Tambahkan kode di bawah ini untuk membuat prefix pada URL:
$route['admin/(:any)'] = 'admin/$1';
Kode tersebut memetakan URL yang dimulai dengan http://localhost/nama_project/admin/
ke method pada controller admin
.
Terakhir, periksa apakah file .htaccess
pada direktori root sudah ada dan berisi RewriteEngine on
. Jika belum ada, buat file .htaccess
dan simpan pada direktori root.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$
index.php/$1 [L]
Kode tersebut berguna untuk menangani semua request URL pada CodeIgniter.
Itulah cara membuat router pada CodeIgniter 3 yang sederhana dan mudah dipahami. Semoga bermanfaat!