{{ message }}

Belajar Routing URL di Code Igniter

02/08/2017 | PHP
Belajar Routing URL di Code Igniter

Code Igniter memiliki default routing ketika menterjemahkan URL, secara default Code Igniter memparsing URL yg diminta melalui web browser untuk memanggil method dalam suatu Class controller. Itulah hal otomatis yg dilakukan oleh system dari Code Igniter, namun demikian selain routing otomatis tersebut Code Igniter juga memberikan kita fitur untuk merouting URL secara manual melalui routes array. Dengan adanya fitur ini maka URL dapat kita atur sedimikan rupa sehingga kita dapat menentukan URL ini diarahkan ke controller ini dan method inim ataupun URL yg itu kita arahkan ke controller itu dan method itu.

Pada tutorial kali ini kita akan membahas langkah-langkah untuk mengatur URL routing secara manual. Untuk mengatur URL routing di Code Igniter Anda dapat mengedit file routes.php, tepatnya di direktori “application/config/routes.php”. Di dalam file ini Anda akan menjumpai routes array, caranya mudah sekali untuk merouting URL cukup tambahkan arraynya misalnya seperti ini;

<?php
 
...
 
$routes['alamat/yg/anda/inginkan'] = 'ControllerAnda/methodNya';

Saya asumsikan Anda memiliki alamat “http://websiteanda.com” dan jika Anda merouting URL seperti diatas maka sama saja Anda mengarahkan alamat “http://websiteanda.com/alamat/yg/anda/inginkan” ke controller “ControllerAnda” dan method “methodNya”. Dalam arti lain ketika Anda membuka alamat “http://websiteanda.com/alamat/yg/anda/inginkan” itu sama saja Anda mengeksekusi “ControllerAnda::methodNya()”. Untuk mencoba router diatas silakan terlebih dahulu membuat controller di direktori “application/controllers” sesuai dengan Class dan Method yg diarahkan diatas. Misalnya seperti ini;

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
class ControllerAnda extends CI_Controller {
 
	public function methodNya()
	{
		echo 'routing berhasil';
	}
}

Simpanlah controller tersebut di “application/controllers/ControllerAnda.php”, lalu coba buka web browser Anda dan buka alamat “http://websiteanda.com/alamat/yg/anda/inginkan” tadi.

URL Dengan Parameter

Untuk menyisipkan parameter ke dalam URL yg dirouting caranya cukup mudah, berikut ini contohnya;

<?php
 
...
 
$routes['alamat/yg/anda/inginkan/(:any)/(:any)'] = 'ControllerAnda/methodNya/$1/$2';

Artinya setiap kata yg dituliskan di url pada posisi (:any) akan dilempar sebagai parameter method sesuai dengan urutan parameternya. Dalam hal ini (:any) pertama akan dilempar ke parameter $1 sedangkan (:any) pada urutan kedua dilempar ke parameter $2. Setelah itu Anda tinggal menampungnya sebagai parameter method dengan menyediakan;

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
class ControllerAnda extends CI_Controller {
 
	public function methodNya($iniParamPertama, $iniParamKedua)
	{
	  echo 'Param pertama: '.$iniParamPertama.', Param Kedua:'.$iniParamKedua;
	}
}

Jadi jika Anda membuka URL “http://websiteanda.com/alamat/yg/anda/inginkan/isivar1/isivar2” maka hasil output script diatas adalah;

Param pertama: isivar1, Param Kedua: isivar2

Perintah (:any) akan menerima segala bentuk karakter termasuk numeric dan string. Jika Anda hanya ingin menerima karakter numeric saja silakan gunakan perintah (:num).

<?php
 
...
 
$routes['alamat/yg/anda/inginkan/(:any)/(:num)'] = 'ControllerAnda/methodNya/$1/$2';

Itu artinya di parameter kedua Anda hanya menerima numeric saja sedangkan string tidak.