config.php
должен быть загружен для инициализации класса Session, так как он считывает настройки из этого файла.
Много проблем с этим типом вещи (установка некоторого "глобального"«данные» можно разрешить с помощью базового контроллера и расширения его в ваших контроллерах.
// core/MY_Controller.php
MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct(); // Now the Session class should be loaded
// set config items here
}
}
«Обычные» контроллеры теперь будут расширяться MY_Controller
, чтобы воспользоваться этим преимуществом.
См.: http://codeigniter.com/user_guide/general/core_classes.html для получения более подробной информации.
Кроме того, когда вы load->vars()
, они доступны только для слоя представления, он не создает глобальную переменную с именем $data
, как вам кажетсяпытаться получить доступ.Если вы сделаете это:
$this->load->vars(array('user' => '1'));
Вы получите доступ к нему в файле, загруженном $this->load->view()
следующим образом:
echo $user; // outputs "1"
См .: http://codeigniter.com/user_guide/libraries/loader.html
$ this-> load-> vars ($ array)
Эта функция принимает в качестве входных данных ассоциативный массив и генерирует переменные, используя функцию извлечения PHP.Эта функция выдает тот же результат, что и второй параметр функции $this->load->view()
, описанной выше.Причина, по которой вы можете использовать эту функцию независимо, заключается в том, что вы хотите установить некоторые глобальные переменные в конструкторе вашего контроллера и сделать их доступными в любом файле просмотра , загруженном из любой функции.Вы можете сделать несколько вызовов этой функции.Данные кешируются и объединяются в один массив для преобразования в переменные.
Я скажу, что для опытного пользователя Codeigniter концепция класса «глобальные переменные» немного сложна и, вероятно, не нужна,особенно когда уже так легко получить и установить элементы конфигурации.Вы можете определенно столкнуться с некоторыми запутанными проблемами и конфликтами имен переменных с помощью этого метода (предварительная загрузка большого количества переменных представления при каждом запросе).