В моем кодеминерном проекте HMVC. Когда я пытаюсь запустить свой первый запрос isset в модулях foreach. Если я раскомментирую код ниже, то пожарная лиса загружает ошибку страницы Соединение было сброшено.Невозможно загрузить страницу с помощью codeigniter
Но если я прокомментирую код, как показано ниже, страница загрузится очень странно.
//if (isset($part[0]) && $this->setting->get($part[0] . '_status')) {
// $data['modules'][] = Modules::run('catalog/module/'.$part[0].'/index');
//}
По какой-то причине не нравится использовать isset($part[0])
Как код работает
$part[0]
возвращает на примере имя модуля категории$part[1]
возвращает пример номер модуля 66 category.66$this->setting->get($part[0] . '_status')
возвращает либо 1, если включен или 0, если инвалидов.
Что может быть причиной не загрузки страницы, когда я раскомментирую код выше. Любые предложения
Контроллер
<?php
class Column_left extends MX_Controller {
public function index() {
$this->load->model('catalog/extension/model_extension_extension');
$this->load->model('catalog/design/model_design_layout');
$route = $this->uri->segment(1).'/'.$this->uri->segment(2);
// $route outputs like pages/category
$layout_id = 0;
if (!$layout_id) {
$layout_id = $this->model_design_layout->get_layout($route);
}
if (!$layout_id) {
// Setting library autoloaded
$layout_id = $this->setting->get('config_layout_id');
}
$data['modules'] = array();
$modules = $this->model_design_layout->get_layout_modules($layout_id, 'column_left');
foreach ($modules as $module) {
$part = explode('.', $module['code']);
echo $part[0];
// Setting library autoloaded
if (isset($part[0]) && $this->setting->get($part[0] . '_status')) {
$data['modules'][] = Modules::run('catalog/module/'.$part[0].'/index');
}
if (isset($part[1])) {
$setting_info = $this->model_extension_module->get_module($part[1]);
if ($setting_info && $setting_info['status']) {
$data['modules'][] = Modules::run('catalog/module/'.$part[0].'/index', $setting_info);
}
}
}
// Setting library autoloaded
if (file_exists(DIR_TEMPLATE .$this->setting->get('config_template'). '/template/common/column_left_view.php')) {
$this->load->view('theme/'.$this->setting->get('config_template').'/template/common/column_left_view', $data);
} else {
$this->load->view('theme/default/template/common/column_left_view', $data);
}
}
}
Посмотреть
<?php if ($modules) { ?>
<column id="column-left" class="col-sm-3 hidden-xs">
<?php foreach ($modules as $module) { ?>
<?php echo $module; ?>
<?php } ?>
</column>
<?php } ?>
Что-нибудь полезное в журнале ошибок? Такие ошибки обычно означают тайм-аут браузера или слишком много переадресаций (которые обычно обнаруживает браузер, поэтому более вероятно тайм-аут). – Rooster
Нет ошибок, показывающих только разрывы страниц, когда я начинаю код – user4419336
просто из любопытства, можете ли вы запустить результаты if без инструкции if? Другими словами, какая строка вызывает таймаут? Это поможет сузить его. – SpYk3HH