簡體   English   中英

無法使用Codeigniter加載頁面

[英]Unable to load page with codeigniter

在我的codeigniter HMVC項目上。 當我嘗試在模塊foreach部分中運行我的第一個isset語句時。 如果我取消注釋下面的代碼,那么Firefox加載頁面錯誤連接已重置

但是,如果我注釋掉頁面下面的代碼,則加載非常奇怪。

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

經過中午的所有工作后,能夠找到問題的原因。

在我的目錄模塊文件夾中,我在不同的文件夾(目錄/類別和模塊/類別)中有兩個名稱相同的控制器。 即使它們位於不同的文件夾中,一個也比其他文件夾占用時間過長,並導致Firefox出現頁面加載錯誤。

我如何解決問題。 通過將子文件夾目錄中的控制器重命名為類別,我刷新了頁面,然后開始工作。

我也在這里清理了代碼。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM