For any queries you can reach us at infovistarindia@gmail.com / WhatsApp us: +919158876092

URI Routing in CodeIgniter

Overview

Routing rules are defined in your application/config/routes.php file.

There is a one-to-one relationship between a URL string and its corresponding controller class/method. The segments in a URI normally follow this pattern:

example.com/class/function/id/

In some cases, you may want to remap this relationship so that a different class/method can be called instead of the one corresponding to the URL.

To learn how to implement routers on a real-world project, we will assume that we are creating an application for managing contact details. The following table shows the URLs that will be working with.

No. URL Route Controller Method
1 / $route['default_controller'] Contacts index
2 /contacts $route['contacts'] Contacts list
3 /contacts/add $route['contacts/add'] Contacts add
4 /contacts/edit/id $route['contacts/edit/(:num)'] Contacts edit
5 /contacts/update/id $route['contacts/update/(:num)'] Contacts update
6 /contacts/delete/id $route['contacts/delete/(:num)'] welcome delete

Create URL's for Application

create routes for our project. Open application/config/routes.php

$route['default_controller'] 		= 'contacts';
$route['contacts'] 			= 'contacts/list';
$route['contacts/add'] 			= 'contacts/add';
$route['contacts/edit/(:num)']		= 'contacts/edit/$1';
$route['contacts/update/(:num)'] 	= 'contacts/update/$1';
$route['contacts/delete/(:num)'] 	= 'contacts/delete/$1';

$route['404_override'] 			= '';
$route['translate_uri_dashes'] 		= FALSE;

The following table shows the respective URLs obtained from the above-defined routes

No. Route URL
1 $route['default_controller'] = 'contacts'; http://localhost
2 $route['contacts'] = 'contacts/list'; http://localhost/contacts
3 $route['contacts/add'] = 'contacts/add'; http://localhost/contacts/add
4 $route['contacts/edit/(:num)'] = 'contacts/edit/$1'; http://localhost/contacts/edit/1
5 $route['contacts/update/(:num)'] = 'contacts/update/$1'; http://localhost/contacts/update/1
6 $route['contacts/delete/(:num)'] = 'contacts/delete/$1'; http://localhost/contacts/delete/1

Directory structure

application
views
	+ contacts
		- add.php
		- list.php
		- edit.php

	+ innerpages
		- header.php
		- footer.php
		- template.php
	- home.php