У меня есть, может быть, глупый вопрос - но это из-за моего недостатка знаний. Мне интересно, могу ли я выполнить следующий результат.Переменные обмена Codeigniter
Контроллер
class Building extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('buildings/buildings_model' , 'buildings');
$is_locked = $this->buildings->_lock;
}
// generic building overview. Includes data like name and location
public function index($obj)
{
// the $obj param is the segment id from router
}
public function details($obj)
{
// here I would get some more specific data
}
public function associates($obj)
{
// list of things that the object is associated
}
}
Модель
class buildings_model extends MY_Model{
public $_lock = false;
function __construct() {
parent::__construct();
// example pseudo code
// db query select lock from obj where id = 1 for example
// if lock == 1 { $this->_lock = TRUE; }
}
}
А теперь вопрос .. я назначил глобальную переменную public $_lock = false;
в model
так он доступен во все объеме controller
. Но каждый раз, когда я обращаюсь к views
, model constructor
каждый раз делает запрос, чтобы проверить, заблокирован ли объект. Как правило, мне нужен глобальный флаг, если здание заблокировано, но генерируется не каждый просмотр страницы.
хранить его в сеансе и проверить комплект или нет. –
хорошо, что-то рассмотреть, но будет ждать и других идей, пользователь может получить доступ к нескольким зданиям за это время, поэтому может быть много информации, хранящейся в сеансе. –
Я думаю, что db - лучшее место для хранения флага. u может проверить, истинно ли это в самом конструкторе и вызвать die/exit там –