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 controllerHome
, methodindex()
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 Method | URL | Controller::method |
---|---|---|
GET | /produk | Produk::index() |
GET | /produk/{id} | Produk::show($id) |
POST | /produk | Produk::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.