CodeIgniter 2.0 с модульными расширениями (HMVC) ничего не показывает в Linux - PullRequest
0 голосов
/ 06 декабря 2011

* отредактировано, чтобы быть более понятным

Я развертываю CI 2.0.3 с модульными расширениями (HMVC) в двух средах, одна для Windows - для разработки, а другая - для Linux - для производства.Обе среды имеют одинаковую структуру папок и файлов.В настоящее время у меня проблема.

После интеграции модульных расширений в CI, следуя инструкции.Первым делом я переместил стандартную версию Welcome MVC, которая поставляется с CI, в модульные расширения HMVC.Обе среды успешно перемещены и могут просматриваться в браузере.

Но когда я создавал другие модули, он работал в среде Windows, но не в Linux.В Windows, когда я вызываю модуль, браузер показывает страницу, как и ожидалось.Но в Linux это просто белая пустая страница.Даже страницы с ошибкой 404. Это означает, что это не битая ссылка.

Может кто-нибудь сказать мне, что не так в CI?

Структура каталогов

/application
-/cache
-/config
-/controllers
-/core
--MY_Loader.php
--MY_Router.php
-/errors
-/helpers
-/hooks
-/language
--/english
-/libraries
-/logs
-/models
-/modules
--/csv_game_credit
---/controllers
----csv_game_credit.php
---/models
----csv_game_credit_db.php
---/views
----welcome_message.php
--/welcome
---/controllers
----welcome.php
---/views
----welcome_message.php
-/third_party
--/MX
--Base.php
--Ci.php
--Config.php
--Controller.php
--Lang.php
--Loader.php
--Modules.php
--Router.php
-/views

Приветственный контроллер

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->view('welcome_message');
    }
}

Csv_game_credit controller

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Csv_game_credit extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('Csv_game_credit_db');

        $this->load->dbutil();
        $this->load->helper('file');
    }

    public function index()
    {
        $this->load->view('welcome_message');
    }

}

Это как-то связано с разрешением папки Linux?Я попытаюсь изменить разрешение папки на 777 и обновить вас, ребята

Спасибо, прежде чем

Ответы [ 2 ]

2 голосов
/ 12 октября 2012

Вам нужно расширить MX_Controller, а не CI_Controller

0 голосов
/ 07 декабря 2011

Если вы используете расширение HMVC из wiredesignz , вам необходимо убедиться, что вы поместили папку MX в папку application/third_party, а MY_Loader.php и MY_Router.php в application/coreпапка.

Когда это будет проверено, создайте папку modules в папке application ('application / modules`).

Теперь, что немного сложнееВ этом случае решение заключается в том, что когда вы не хотите создавать модуль, контроллер по умолчанию должен называться так же, как и модуль - имя контроллера по умолчанию, указанное в конфигурации, здесь не применяется.

Это означает, что если вы создаете модуль с именем `mymodule ', вы должны создать структуру папок / файлов, например:

application/modules/mymodule
- /controllers
- - mymodule.php
- /views
- - whatever.php

В контроллере, расположенном в application/modules/mymodule/controllers/mymodule.php, вы просто создаете контроллер какобычно делает:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Mymodule extends CI_Controller {

  public function index()
  {
    $this->load->view('whatever');
  }

}
...