2

我使用以下方法更新了模型中的配置变量:

$this->config->set_item('userid', $user_id);

如果我在模型中回显它,我可以看到它被设置了。

但是,如果我在控制器或其他模型中使用:

echo $this->config->item('userid');

它显示原始值。

我需要在整个会话期间存储此配置变量,但我不想使用会话变量。

4

2 回答 2

5

该配置仅适用于您设置的模型。如果您想要一个不使用会话的全局设置。

你可以创建一个核心模型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 扩展核心类

于 2013-04-27T05:37:26.377 回答
0

尝试初始化配置$this->ci = & get_instance();,然后将值设置为 $this->ci->config->set_item('userid', $user_id);

我没有测试过这个......但我认为它会起作用。

于 2013-04-27T05:52:23.183 回答