URL routing (route) adalah salah satu metode yang digunakan untuk memetakan URL ke dalam sumber daya tertentu dengan memberikan nama lain dari alamat sumber daya yang dimaksud. URL routing sering digunakan untuk beberapa hal berikut:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'HomeControl';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
Sebelum saya lanjutkan ke bagian konfigurasi route, saya akan jelaskan fungsi dari beberapa baris code di atas.
Selanjutnya saya akan melanjutkan materi ke penerapan route pada Codeigniter dengan disertakan contoh dari masing-masing kasus.
$route['profil'] = 'HomeControl/view_profil';
Dari code di atas saya akan jelaskan secara mendetail agar anda bisa mengerti dengan mudah dari penerapan route pada Codeigniter ini. $route['profil'] adalah rute baru yang menuju ke function view_profile pada HomeControl.
Dari penjelasan di atas maka format dari pembuatan route yaitu:
$route['nama-rute-baru'] = 'NamaController/nama_function';
Kemudian untuk mendukung dari penerapan route di atas, berikut isi HomeControl dalam mengakses function view_profil.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class HomeControl extends CI_Controller
{
function view_profil()
{
$this->load->view('profil');
}
}
Dalam beberapa kasus, sering kali kita mengirimkan variabel entah itu berupa id dan lain sebagainya melalui URL. Pada bagian ini saya akan menjelaskan cara untuk membuat route dengan disertakan variabel.
Dalam hal ini ada beberapa dasar yang perlu diingat kembali yaitu di dalam pengiriman variabel melalui URL, variabel yang di kirimkan dapat berupa angka, huruf, dan karakter lain. Di dalam Codeigniter, terdapat fasilitas yang dapat memudahkan kita untuk membatasi variabel yang diizinkan dalam route.
Pada route Codeigniter kita akan mengenal (:num), (:any), dan karakter lain yang berupa regex. Berikut penjelasannya:
Selanjutnya akan saya lanjutkan ke penerapan dari route dengan menggunakan variabel yang dikirimkan melalui URL.
Dalam kasus ini saya akan memberikan contoh kasus dengan dua contoh penggunaan secara langsung yaitu (:num) dan (:any). Hasil akhir URL yang ditampilkan yaitu:
http://www.domain.com/produk/1/nama-produk-1
Untuk penulisan dalam route dari URL di atas yaitu:
$route['produk/(:num)/(:any)'] = 'HomeControl/detail_produk/$1/$2';
$1 dan $2 dalam rute yang dibuat menandakan pengambilan variabel dimana $1 untuk (:num) dan $2 untuk (:any). Jika dalam kasus ini anda hanya ingin menggunakan satu variabel saja sebagai parameter dalam function di controller maka anda dapat menghilangkan salah satu dari $1 atau $2. Seperti contoh saya hanya akan menggunakan id_produk untuk fungsi detail produk, maka codenya seperti berikut:
$route['produk/(:num)/(:any)'] = 'HomeControl/detail_produk/$1';
Kemudian pemanggilan dalam controller seperti berikut:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class HomeControl extends CI_Controller
{
function view_profil()
{
$this->load->view('profil');
}
function detail_produk($id_produk)
{
$this->load->model('ProdukModel');
$data['produk'] = $this->ProdukModel->getProdukById($id_produk);
$this->load->view('detail_produk',$data);
}
}
$id_produk pada function detail_produk di dapat dari pengiriman variabel $1 dari route yang dibuat.
Penerapan regex pada route codeigniter hampir sama dengan penggunaan (:num) dan (:any) yang menjadi pembeda yaitu hanya karakter yang bisa diterima oleh route untuk bisa mengakses function pada controller. Contoh penerapannya sebagai berikut:
$route['produk/(:num)/([a-z]+)'] = 'HomeControl/detail_produk/$1';
Pada bagian ini penggunaan regex untuk membatasi nama produk, dimana hanya berupa karakter a sampai z saja dengan huruf kecil.
Demikian artikel tentang penerapan dari URL routing pada framework Codeigniter, semoga artikel ini dapat membantu anda dalam belajar Codeigniter.