Я обновил мою конфигурационную переменную в своей модели, используя:
$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);
Я не тестировал это … но я предполагаю, что это сработает.