【发布时间】:2017-09-09 12:47:08
【问题描述】:
我正在尝试使用 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 的模拟,继承立即生效。是codeigniter的问题吗?
【问题讨论】:
-
我自己的解决方案:使用会话函数似乎是合理的,但仍然不明白为什么继承不起作用。
-
这确实应该有效。我在我的情况下对此进行了测试,它确实可以正常工作。我认为您将 MY_MODEL.php 放在 application/core 目录中?
标签: php codeigniter