Codeigniter 4.x Routing & Controller

Controller

Kita akan membuat sebuah Controller bernama app/Controllers/Page.php.

				
					<?php

namespace App\Controllers;

class Page extends BaseController{
    public function index(){
        return view('welcome_message');
    }
    public function details($id=0){
       echo '<br/><br/><br/><br/><h1 style="text-align:center">'.$id.'</h1>';
    }
}
				
			
Routing

Untuk mengakses Controller di atas kita memerlukan routing. CodeIgniter memiliki dua jenis routing yaitu :

Perutean Manual yaitu anda diharuskan mendefinisikan rute secara manual. Hal ini memungkinkan pembuatan URL yang lebih fleksibel. Untuk mendefinisikan Route buka app/Config/Routes.php lalu tambahkan baris berikut :

				
					$routes->get('pages', 'Page::index');
$routes->get('(:any)', 'page::details/$1');
				
			

(:any) merupakan placeholders,

Placeholder adalah string yang mewakili pola Regular Expression. Selama proses perutean, placeholder ini diganti dengan nilai Regular Expression. Mereka terutama digunakan untuk keterbacaan.

Jenis2 Placeholders :

  • (:any) digunakan untuk menangkap seluruh jenis inputan
  • (:segment) digunakan untuk menangkap seluruh jenis inputan kecuali forward slash (/)
  • (:num) digunakan untuk menangkap angka
  • (:alpha) digunakan untuk menangkap data berupa huruf
  • (:alphanum) digunakan untuk menangkap data berupa huruf dan angka
  • (:hash) memiliki konsep yang sama dengna segment hanya saja.. ini lebih mudah digunakan jika ketika id pada routing menggunakan hash

Buka browser http://domain_anda/pages

Buka browser http://domain_anda/23

Perutean Otomatis yaitu permintaan HTTP berdasarkan uri_segmen dan menjalankan Metode dan Controller yang sesuai dengan urutannya misal url : http://example.com/page/detail/23 artinya anda akan menjalankan :

  • Controller Page
  • Method detail,
  • Placeholders 23.

Untuk melakukan Perutean Otomatis anda perlu mengedit file app/Config/Routes.php edit baris berikut :

				
					//$routes->setAutoRoute(false);
$routes->setAutoRoute(true);
				
			

Buka browser http://domain_anda/page/details/23

lalu matikan lagi AutoRoute, maka hasilnya seperti ini :

Leave a Reply

Your email address will not be published.Required fields are marked *

twenty + 10 =