2016-01-05 5 views
1

С Codeigniter 2.xx, как я могу сохранить значения свойств, заданных между вызовами метода, которые требуют нового запроса HTTP? Я пытаюсь избежать получения и установки одних и тех же данных несколько раз. Пример тока: Модель:Стойкие свойства в Codeigniter

class Plan_model extends Ci_model{ 
    public $plan_id; 
    public function __construct() 
    { 
     parent::construct(); 
    } 

    public function set_plan_id($plan_id) 
    { 
     $this->plan_id = $plan_id; //Becomes NULL with new http request, want to keep value 
    } 
} 

Контроллер:

class Plan extends Ci_controller{ 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('plan_model'); 
    } 

    public function set_plan_id() 
    { 
     $this->plan_model->set_plan_id(3) 
     redirect('/plan/get_plan_id'); 
    } 

    public function get_plan_id() 
    { 
     $plan_id = $this->plan_model->plan_id; //produces NULL, Expecting 3 
    } 

ответ

1

Вы, наверное, глядя на использование сеансов, чтобы определить информацию.

$this->session->set_userdata($plan_id); 

Вот ссылка для данных сеанса: https://ellislab.com/codeigniter/user-guide/libraries/sessions.html

+0

Я знаю, что я мог бы хранить значение в сессии ... но не существует никакого способа, чтобы остановить повторное создание экземпляра объекта модели с каждым новым запросом HTTP? – Kisaragi

+0

Не совсем, за исключением проверки требуемой ценности перед созданием экземпляра. Вы можете создать экземпляр модели, если переменная сеанса не установлена. Есть ли проблема с производительностью, с которой вы сталкиваетесь при повторной обработке? – AlexC

+0

Не проблема с производительностью. Я буду использовать сессию в конце концов :) – Kisaragi

Смежные вопросы