я только начинаю с codeigniter, я хочу скрыть имя контроллера из URL с той же настройкой маршрутов.
У меня есть 3 контроллера, которые являются учениками, персоналом, преподавателями, имеющими ту же функцию, что и дома, это не будет работать явно
$route['home'] = 'students/home'; $route['home'] = 'staff/home';
есть ли способ сделать это? У меня есть данные сеанса, используя класс sessionigniter, содержащий тип пользователя, поэтому я попробовал что-то вроде этого
session_start() $route['home'] = $_SESSION['user_type'].'/home';
но я не могу получить данные сеанса, возможно, используя класс sessionigniter session? так, как я могу получить данные? или есть другое решение?
Возможно, вам следует написать общий контроллер и разойтись по вашему второму параметру URI:
домой / студенты или дом / персонал
$route['home/:any'] = "home";
и индексный метод домашнего контроллера:
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; } }
Очевидно, что вы бы создали метод ученика и персонала и, если нужно, обрабатывали вещи по-разному.
Замечание – почему вы хотите скрыть имя контроллера? Не похоже, что это дыра в безопасности или что-то еще.