我已經用我的更新配置變量,在我的模型:在codeigniter中動態設置我的配置變量後,如何從其他控制器和模型訪問它們?
$this->config->set_item('userid', $user_id);
,如果我在模型呼應它,我可以看到它被設置。
但是,如果我回聲它在控制器或使用另一種模式:
echo $this->config->item('userid');
它顯示的原始值。
我需要在整個會話中存儲此配置變量,但我不想使用會話變量。
我已經用我的更新配置變量,在我的模型:在codeigniter中動態設置我的配置變量後,如何從其他控制器和模型訪問它們?
$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;
}
}
,或者你可以同時創建一個核心控制器如上述,但用控制器來模擬 閱讀更多http://ellislab.com/codeigniter/user-guide/general/core_classes.html
嘗試初始化配置$this->ci = & get_instance();
然後設置類似 $this->ci->config->set_item('userid', $user_id);
我還沒有測試過......但我認爲它會起作用。
我測試過它..使用$ ci =&get_instance();和$ ci-> config-> set_item('userid',$ user_id); – 2017-07-22 15:10:26
嘿謝謝:)它的工作。我創建了一個核心模型並使用你的邏輯。我現在還想知道另外1件事,我是否還要將所有其他模型類也擴展到MY_Model? – Simone 2013-04-27 06:26:13
@Simone是的,你需要,因爲核心模型持有你需要的全局配置項。 – tomexsans 2013-04-27 11:12:28