#php #codeigniter
#php #CodeIgniter
Вопрос:
У меня есть два пользователя, если они вошли в систему, для каждого пользователя должна появиться отдельная панель мониторинга. Я хочу, чтобы URL-адрес маршрутов отображался не как имя функции, а как пользовательское имя, например, /dasboard
или более похожее на это http://localhost/project/dashboard/
для двух из них (пользователей). для этого я попытался установить Routes.php
, как показано ниже:
$route['dashboard'] = 'admin/index';
$route['dashboard'] = 'user/index';
Но результат ничего не отображает для пользовательского / индексного маршрута, я допустил ошибку или я что-то пропустил?
Ответ №1:
когда пользователь входит в систему, задайте значение сеанса, к какой группе он принадлежит, например: $_SESSION['group']='admin';
или $_SESSION['group']='user';
теперь в ваших маршрутах ваш 2-й маршрут не имеет никакого эффекта, поскольку
Маршруты будут выполняться в том порядке, в котором они определены. Более высокие маршруты всегда будут иметь приоритет над более низкими.
но вы можете сделать их динамическими, проверяя свои сеансы:
if( isset($_SESSION['group']) amp;amp; $_SESSION['group']=='admin'){
$route['dashboard'] = 'admin/index'; // logged in as admin
}elseif( isset($_SESSION['group']) amp;amp; $_SESSION['group']=='user'){
$route['dashboard'] = 'user/index'; // logged in as user
}else{
$route['dashboard'] = 'login'; // not logged in, send to login
}
Комментарии:
1. я заменил [‘group’] на мой set_userdata и использовал код выше только одного параметра (не использовать параметр после amp;amp;), но его отображение страницы 404 не найдено
2.
isset($_SESSION['group'])
проверяет, существует ли параметр сеанса, иamp;amp; $_SESSION['group']=='admin'
проверяет, является ли параметр сеанса администратором . Если вы опустите это, это не сработает. Скорее всего, вы попали в предложение else, и, поскольку у вас, возможно, еще не определен логин контроллера, вы получаете ошибку 4043. я снова использовал два параметра, и да, я определил его при входе в контроллер
redirect('dashboard');
, но страница 404 все еще не найдена4. проверьте, соблюдаете ли вы все правила именования (имена классов с заглавной буквы, имена файлов с заглавной буквы для контроллеров и моделей. Также, если вы вызываете файл представления в своем контроллере, который не существует: 404, и если ваш baseurl установлен неправильно, 404, или если ваши системные / прикладные настройки в вашем маршруте index.php ошибаются: 404