Путь к файлу конфигурации в Codeigniter HMVC (HMVC + Tank Auth) - PullRequest
2 голосов
/ 09 июня 2011

У меня проблема с путями файла конфигурации для модуля с именем 'auth' (который содержит библиотеку аутентификации tank_auth).

Каждая функция в модуле «auth» загружает библиотеку «tank_auth.php», которая загружает файл конфигурации tank_auth в application/modules/auth/config/tank_auth.php:

function __construct()
{
    $this->ci =& get_instance();

    $this->ci->load->config('tank_auth', TRUE); //<--- HERE IT IS!!

    $this->ci->load->library('session');
    $this->ci->load->database();
    $this->ci->load->model('tank_auth/users');

    // Try to autologin
    $this->autologin();
}

В другом модуле я вставляю следующий вызов функции в представлении в модуле 'auth':

<?php modules::run('auth/cp');  ?>

Это дает мне ошибку

An Error Was Encountered
The configuration file tank_auth.php does not exist.

Я решаю эту проблему, изменив функцию __construct в Tank_auth.php, путь от tank_auth до auth / tank_auth.

function __construct()
{
    $this->ci =& get_instance();

    $this->ci->load->config('auth/tank_auth', TRUE); // <--- ADDED module name

    $this->ci->load->library('session');
    $this->ci->load->database();
    $this->ci->load->model('tank_auth/users');

    // Try to autologin
    $this->autologin();
}

Мой вопрос заключается в том, почему функция auth cp, вызываемая из другого модуля, не видит файл конфигурации в модуле 'auth'? Разве я не могу просто использовать config('tank_auth', TRUE) без добавления в название модуля?

1 Ответ

1 голос
/ 23 июня 2011

Так устроен модуль HMVC.

$this->ci->load->config('tank_auth', TRUE);

Это будет искать только в папке конфигурации по умолчанию. См. Раздел «Функции» официальной страницы CI HMVC , где она упоминается в контексте контроллеров.

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