gpt4 book ai didi

php - 尝试在没有静态方法的情况下访问父类(super class) MY_MODEL

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:58 25 4
gpt4 key购买 nike

我正在尝试使用 Codeigniter 构建一个“多客户端”网络应用程序。但是现在我无法使用 $this-> 变量从其他模型访问 MY_MODEL。我必须使用静态的。这是个问题吗?

我的 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']);

我的模型.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 问题吗?

最佳答案

它按预期工作,只需要使用相同的对象。您设置变量,然后尝试从不同的对象访问它(这就是它为空的原因)。所以你需要这样做:

$this->load->model('Tasks_model');
$this->Tasks_model->set_session('444');
$this->Tasks_model->getAll();

关于php - 尝试在没有静态方法的情况下访问父类(super class) MY_MODEL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46130873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com