In any application, routes are the rules which maps the functions with URL and control application re-directions. Typically there is a one-to-one relationship between a URL string and its corresponding controller class/method.
https://example.com/class/method/parameter
CodeIgniter 4 Route Basics
In CodeIgniter 4, routes configured into Routes.php file which is inside /app/Config folder.
By default you can find a route which is available when you install a codeigniter 4 setup.
$routes->get('/', 'Home::index');
$routes is an instance of the RouteCollection class. A route simply takes the URI on the left, and maps it to the controller and method on the right, along with any parameters that should be passed to the controller.
- / It’s a URL
- Home It is a controller class
- index Method of Home Controller class
- get() Method from RouteCollection class, which is GET request type
RouteCollection class provide several methods according to HTTP request type like – POST, GET, DELETE etc.
In CodeIgniter 4 application, creating routes includes method type. We can use following methods like $routes->get(), $routes->post(), $routes->match(), $routes->add() etc.
//...
// Using add() method
$routes->add("about-us", "Site::aboutUs");
$routes->add("products", "Site::ourProducts");
$routes->add("services/(:num)", "Site::services/$1");
// Using get() method
$routes->get("about-us", "Site::aboutUs");
$routes->get("products", "Site::ourProducts");
$routes->get("services/(:num)", "Site::services/$1");
//...
Inside these routes, we need to create and process request by using controller’s method.
CodeIgniter 4 Route Closures
When we define route closures, it means we are going to call request function in route file itself. Have a look,
//...
// route with static message
$routes->get("contact-us", function () {
echo "<h1>Welcome to Online Web Tutor</h1>";
});
// route with view file
$routes->get("about-us", function () {
return view("about-us"); // /app/Views/about-us.php
});
// route with parameter
$routes->get("services/(:num)", function ($id) {
echo "ID: ".$id;
});
//...
We can define following types of routes in codeigniter 4 application –
- Named route
- Parametrized route
- Closure route
- Route redirection
- Route group
We will see about each in upcoming sessions.
Read more