i'm just getting started at codeigniter, i want to hide controller name from URL with same routes setup.
i have 3 controllers which are students, staff, teachers having same function called home, this won't work obviously
$route['home'] = 'students/home';
$route['home'] = 'staff/home';
is there any way to accomplish this? i have session data using codeigniter session class containing user type so i tried something like this
session_start()
$route['home'] = $_SESSION['user_type'].'/home';
but i cant get the session data, maybe its using codeigniter session class?? so, how can i get the data? or is there other solution?
Perhaps you should write a common controller and disperse by your second URI parameter:
home/students or home/staff
$route['home/:any'] = "home";
and home controller's index method:
public function index()
{
$type = $this->uri->segment(2);
switch($type){
case "student":
$this->student();
break;
case "staff":
$this->staff();
break;
default:
$this->some_other_method();
break;
}
}
Obviously you would create a student and staff method and handle things differently if need be.
A side note - why do you want to conceal the controller's name? It's not like that's a security hole or anything.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.