我正在尝试建立一个多客户端" Codeigniter的网络应用程序。但是现在我无法使用$this->
变量从其他模型访问MY_MODEL。我必须使用静态的。这是一个问题吗?
MY_Controller.php
class MY_Controller extends CI_Controller {
protected $data = array();
public function __construct($name = null) {
parent::__construct();
$this->load->model('my_model');
$this->data['mandant']['clientID'] = $session_data['clientID'];
$this->my_model->set_session($this->data['mandant']);
MY_Model.php
class MY_Model extends CI_Model {
protected static $works = array();
public $worksnot = array();
public function __construct() {
parent::__construct();
}
public function set_session($value) {
self::$works = $value;
$this->worksnot = $value;
}
Tasks_model.php
class Tasks_model extends MY_Model {
public function __construct() {
parent::__construct();
}
public function getAll() {
print_r(parent::$works);
print_r($this->worksnot);
两种方式都不可行吗?这最好是?
我做了一个没有codeigniter的模拟,继承工作immediatley。这是一个codeigniter问题吗?
答案 0 :(得分:0)
它按预期方式工作,只需要使用同一对象即可。您设置变量,然后尝试从其他对象访问它(这就是为什么它为空)。因此,您需要这样做:
$this->load->model('Tasks_model');
$this->Tasks_model->set_session('444');
$this->Tasks_model->getAll();