Codeigniter HMVC повторно объявляет об ошибке - PullRequest
3 голосов
/ 13 мая 2011

Я использую CI 2.0.2 и использую 5.4 Модульное расширение.

У меня есть пользователь в качестве контроллера по умолчанию.

class User extends CI_Controller{

 public function __construct(){
   parent::__construct();
 } 

 public function login{ echo modules::run('login/main'); }
}

Вот мои модули / логин / контроллер

class Login extends MX_Controller{

  public function __construct(){
    parent::__construct();

  $this->load->model('login_model','login');
 } 

  public function main{
     $arrUserInfo = $this->login->getUserInfo();
  }
}

Если я использую "MX_Controller", я получаю ошибку ниже Неустранимая ошибка: невозможно переопределить класс CI в E: \ Projects \ mySite \ application \ third_party \ MX \ Base.php в строке 55

Таким образом, у меня есть изменения с "CI_Controller", тогда я получаю ошибку ниже

Обнаружена ошибка Невозможно найти указанную модель: login_model

Я не понимаю, почему модульный MVC не работает .. Если у кого-то есть идея, пожалуйста, поделитесь ею.спасибо ..

Ответы [ 3 ]

11 голосов
/ 28 сентября 2012

Поработав некоторое время головой о столе и погуглив, я нашел ответ.Ваш User контроллер должен расширять MX_Controller, а не CI_Controller:

class User extends MX_Controller
{
    public function __construct(){
        parent::__construct();
    } 

    public function login { echo modules::run('login/main'); }
}

Очевидно, что любой контроллер, из которого вы вызываете контроллер модуля, должен расширять MX_Controller, даже если он не самчасть модуля.

2 голосов
/ 14 июня 2011

Вы не можете использовать Module::run в контроллере только в представлениях. Вместо этого вы должны использовать:

$this->load->module('folder/controller');
$this->controller->method();
0 голосов
/ 28 июля 2012

Также при загрузке моделей необходимо указывать название модуля.

т.е. $this->load->model('login/login_model','login');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...