Intereting Posts
Адрес в почтовом ящике не соответствует RFC 2822, 3.6.2. когда электронная почта находится в переменной Как добавить фоновое изображение при создании текстового изображения с использованием php? PHP: Как получить атрибут из массива JSON? Как удалить дубликаты в массиве вроде этого? Как я группирую одно значение массива Как отключить подсказку браузера, чтобы запомнить пароль Отправка данных с PHP на Java-приложение Поддержка PHP для Google App Engine? PDO были затронуты строк во время выполнения оператора Есть ли простой PHP-код, чтобы отличить «Передача объекта в качестве ссылки» vs «Передача ссылки объекта как значения»? Как программно обновить параметры атрибута в Magento? Что лучше, isset или нет? Как использовать strpos, чтобы определить, существует ли строка в строке ввода? Получить первый элемент массива Magento: как загрузить продукт по всем его данным, поскольку он используется в админ

После динамической настройки моей переменной конфигурации в кодеригнере, как получить доступ к ним от других контроллеров и моделей?

Я обновил мою конфигурационную переменную в своей модели, используя:

$this->config->set_item('userid', $user_id); 

если я отгоню его в модели, я вижу, что он устанавливается.

Но если я повторю его в контроллере или другой модели, используя:

 echo $this->config->item('userid'); 

он показывает исходное значение.

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

эта конфигурация применима только к той модели, которую вы ее установили. Если вы хотите глобальную настройку без использования сеанса.

вы можете создать базовую модель для application/core и назвать ее

MY_Model

так что в основном то, что MY_Model , это то, что он устанавливает вашу конфигурацию для всех моделей, которые ее расширяют.

 class MY_Model Extends CI_Model { protected $user_id; public function __construct() { parent::__construct(); $this->config->set_item('userid', $this->user_id); } } 

то на вашей модели, которую вы хотите, чтобы настройки были применены, просто расширяет вашу модель. как

 Model extends MY_Model { public function test($id) { $this->user_id = $id; } } 

ИЛИ вы могли бы создать Core COntroller так же, как и выше, но вместо того, чтобы подставлять контроллер в модель, читайте больше по адресу http://ellislab.com/codeigniter/user-guide/general/core_classes.html.

Попробуйте инициализировать config $this->ci = & get_instance(); а затем установите значение как $this->ci->config->set_item('userid', $user_id);

Я не тестировал это … но я предполагаю, что это сработает.