Невозможно загрузить страницу с codeigniter

На моем кодигниторе проекта HMVC. Когда я пытаюсь запустить мой первый оператор isset в модули foreach раздел. Если я раскомментирую код ниже, Fire Fox загружает страницу ошибки Соединение было сброшено.

Но если я закомментирую код, как показано ниже, страница загружается нормально, очень странно.

//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 } ?>

0

Решение

Поработав над всем этим после полудня, удалось найти причину проблемы.

В моей папке модулей каталога было 2 контроллера с одинаковыми именами в разных папках, каталог / категория & модуль / категория. Несмотря на то, что они были в разных папках, одна перевалила за другую и вызвала ошибку загрузки страницы на fire fox.

Как я решил проблему. Переименовав контроллер в каталоге подпапок в категории, я обновил страницу и затем работает.

Я также убрал код здесь.

<?php

class Column_left extends MX_Controller {

public function index() {
$this->load->model('catalog/design/model_design_layout');

$route = $this->uri->segment(1).'/'.$this->uri->segment(2);

$layout_id = 0;

if (!$layout_id) {
$layout_id = $this->model_design_layout->get_layout($route);
}

if (!$layout_id) {
$layout_id = $this->setting->get('config_layout_id');
}

$data['modules'] = array();

$results = $this->model_design_layout->get_layout_modules($layout_id);

foreach ($results as $result) {
$part = explode('.', $result['code']);

if (isset($part[0]) && $this->setting->get($part[0] . '_status')) {
$data['modules'][] = Modules::run('catalog/module/'.$part[0].'/index');
}

if (isset($part[1])) {

$this->load->model('catalog/extension/model_extension_module');

$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);
}
}
}

$this->load->view('theme/default/template/common/column_left_view', $data);
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]