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

Sim*_*one 2 php config codeigniter

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

$this->config->set_item('userid', $user_id);
Run Code Online (Sandbox Code Playgroud)

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

但是,如果我使用以下方法在控制器或其他模型中回显它:

echo $this->config->item('userid');
Run Code Online (Sandbox Code Playgroud)

它显示了原始值。

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

tom*_*ans 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);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在您希望应用设置的模型上,只需扩展您的模型。喜欢

Model extends MY_Model
{

  public function test($id)
  {
    $this->user_id = $id;

   }
}
Run Code Online (Sandbox Code Playgroud)

或者您可以创建一个与上述相同的核心控制器,但在Codeigniter Extending Core Classes中将控制器替换为模型阅读更多内容