В настоящее время я работаю над системой с определенной архитектурой (не моей). В основной папке приложения есть общий ресурс и 2 другие папки (пользователь и администратор) с таким же типом ресурса, что дает нам такую архитектуру:
- приложение
- админ
- 1008 * конфигурация *
- Контроллер
- и т.д ...
- пользователь
- 1018 * конфигурация *
- Контроллер
- и т.д ...
- и т.д ...
В корневой папке есть 2 файла: user.php
и admin.php
, каждый из которых имеет тот же код, что и в классическом index.php
, за исключением строки
$application_folder = 'application/admin';
Пока код работает ... Но я нашел странную реакцию.
В моей папке admin
под контроллером я вызываю метод, который работает, кроме одной вещи ... представление загружено неправильно.
Во всех других методах у меня есть такой код, только с одним параметром:
public function results($param){
$data = [];
//some other code
$this->load->view("election/header");
$this->load->view("election/menu");
$this->load->view("election/results", $data);
$this->load->view("election/footer");
}
Это прекрасно работает, но когда у меня был второй параметр, чудесным образом, метод больше не отображал заголовок / меню / нижний колонтитул. Только пользовательский вид result
...
Я также обнаружил, что если я случайным образом добавлю другой параметр в метод предварительного просмотра results
для примера, произойдет такая же ошибка. Верхний / нижний колонтитул / меню обычно не отображаются больше.
Я предполагаю, что есть проблема с маршрутизацией / htaccess или сегментом ... но я не могу указать на это ...
Вот корневой .htaccess
файл
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^kanri(/(.*))?$ admin.php?/$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^user(/(.*))?$ user.php?/$2 [L]
</IfModule>
И admin/routing.php
$route['default_controller'] = 'login';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
Спасибо за ваше время!