Lewati ke konten utama

Routing di CodeIgniter

Routing adalah proses yang mengarahkan permintaan URL ke fungsi tertentu di controller. Dalam CodeIgniter, semua aturan routing diatur dalam file: app/Config/Routes.php


1. Routing Dasar

Contoh routing dasar:

$routes->get('/', 'Home::index');

Penjelasan:

  • '/' adalah URL root

  • 'Home::index' artinya controller Home, method index()


2. Jenis HTTP Request

CodeIgniter 4 mendukung berbagai jenis request HTTP:

$routes->get('produk', 'Produk::index');       // GET
$routes->post('produk', 'Produk::store'); // POST
$routes->put('produk/(:num)', 'Produk::update/$1'); // PUT
$routes->delete('produk/(:num)', 'Produk::delete/$1'); // DELETE

3. Route dengan Parameter

Kamu bisa menangkap parameter dari URL:

$routes->get('blog/(:segment)', 'Blog::detail/$1');

Contoh URL:

/blog/codeigniter-routing

Akan diarahkan ke:

Blog::detail('codeigniter-routing')

Tipe Segment:

  • (:num) — hanya angka

  • (:alpha) — hanya huruf

  • (:alphanum) — huruf dan angka

  • (:any) — bebas karakter kecuali slash /

  • (:segment) — satu segmen URL, bebas karakter


4. Route dengan Default Controller

Set controller default jika URL kosong:

$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');

Akses http://localhost:8080/ akan memanggil Home::index().


5. Route Group

Untuk mengelompokkan beberapa route dengan prefix:

$routes->group('admin', function($routes) {
$routes->get('users', 'Admin\Users::index');
$routes->get('settings', 'Admin\Settings::index');
});

Hasil:

  • /admin/users

  • /admin/settings


6. Route Resource (RESTful)

Untuk membuat semua route standar REST secara otomatis:

$routes->resource('produk');

Ini akan menghasilkan route berikut:

HTTP MethodURLController::method
GET/produkProduk::index()
GET/produk/{id}Produk::show($id)
POST/produkProduk::create()
PUT/produk/{id}Produk::update($id)
DELETE/produk/{id}Produk::delete($id)

7. Routing Khusus 404

Untuk menangani route yang tidak ditemukan:

$routes->set404Override(function() {
echo view('errors/custom_404');
});

8. Auto Routing (Tidak Direkomendasikan untuk Produksi)

Auto Routing memungkinkan pemetaan URL langsung ke controller tanpa perlu didefinisikan secara eksplisit.

Aktifkan di app/Config/Routes.php:

$routes->setAutoRoute(true);

Contoh URL:

/produk/edit/5

Akan diarahkan ke:

Produk::edit(5)

⚠️ Gunakan dengan hati-hati, karena dapat menyebabkan celah keamanan jika tidak dikontrol dengan baik.

Dengan memahami sistem routing di CodeIgniter, kamu bisa mengatur arah alur aplikasi dengan fleksibel dan efisien.