我使用以下方法更新了模型中的配置变量:
$this->config->set_item('userid', $user_id);
如果我在模型中回显它,我可以看到它被设置了。
但是,如果我在控制器或其他模型中使用:
echo $this->config->item('userid');
它显示原始值。
我需要在整个会话期间存储此配置变量,但我不想使用会话变量。
我使用以下方法更新了模型中的配置变量:
$this->config->set_item('userid', $user_id);
如果我在模型中回显它,我可以看到它被设置了。
但是,如果我在控制器或其他模型中使用:
echo $this->config->item('userid');
它显示原始值。
我需要在整个会话期间存储此配置变量,但我不想使用会话变量。
该配置仅适用于您设置的模型。如果您想要一个不使用会话的全局设置。
你可以创建一个核心模型application/core
并命名它
MY_Model
所以基本上MY_Model
它所做的就是在所有扩展它的模型上设置你的配置。
class MY_Model Extends CI_Model
{
protected $user_id;
public function __construct()
{
parent::__construct();
$this->config->set_item('userid', $this->user_id);
}
}
然后在您希望应用设置的模型上,只需扩展您的模型。像
Model extends MY_Model
{
public function test($id)
{
$this->user_id = $id;
}
}
或者您可以创建一个与上述相同的核心控制器,但替换控制器来模型阅读更多在Codeigniter 扩展核心类
尝试初始化配置$this->ci = & get_instance();
,然后将值设置为
$this->ci->config->set_item('userid', $user_id);
我没有测试过这个......但我认为它会起作用。