如何加载application/config/site_globals.php
以获取变量并在每个控制器中使用它们(与钩子相同的locig(,而不在每个控制器上启动它?我需要使用变量,并且不想在会话中保留它们。
这就是我们通常启动它的方式:
$this->load->config('site_globals');
$my_globals = $this->config->item('site');
echo $my_globals['header_note']; //for example, there are many more
上面的代码必须在每个控制器中复制,这很痛苦。
感谢
application/config/content.php文件用于此目的。
创建一个扩展CI_Controller的MY_Coontroller,在MY_controllers构造函数中加载全局变量,然后确保所有其他控制器都扩展了MY_Contrller而不是CI_Controller。
请参阅文档:http://ellislab.com/codeigniter/user-guide/general/core_classes.html
为了记录,可以对所有核心类(即MY_Session、MY_Model等(执行相同的操作。如果你使用它们,重复代码会变得容易得多。
class Custom_Controller extends CI_Controller
{
$this->load->config('site_globals');
$my_globals = $this->config->item('site');
echo $my_globals['header_note'];
}
然后,在每个需要使用这些全局变量的控制器中,您可以使用它,例如:
class Example extends Custom_Controller
{
//your code here
}