动态设置在笨我的配置变量后,如何从其他控制器和模型访问它们?(After dynamically s

2019-09-26 15:45发布

我在用我的模型更新我的配置变量:

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

如果我在模型呼应它,我可以看到它被设置。

但是,如果我赞同它的控制器或使用另一种模式:

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

它显示了原始值。

我需要这个配置变量存储整个会话,但我不希望使用会话变量。

Answer 1:

这configurtation只适用于你设置这种模式。 如果你不想使用会话的全局设置。

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

   }
}

或者你可以创建一个核心控制器同上,但用控制器来模拟更多的http://ellislab.com/codeigniter/user-guide/general/core_classes.html



Answer 2:

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

我没有测试过这...但我认为它会工作。



文章来源: After dynamically setting my config variable in codeigniter how to access them from other controllers and models?