0

如何加载application/config/site_globals.php以获取变量并在每个控制器中使用它们(与钩子相同的位置)而不在每个控制器中启动它?我需要使用变量并且不喜欢将它们保留在会话中。

这就是我们通常启动它的方式:

$this->load->config('site_globals');
$my_globals = $this->config->item('site');
echo $my_globals['header_note']; //for example, there are many more

上面的代码必须在每个控制器中复制,这很痛苦。

谢谢

4

3 回答 3

3

application/config/constant.php 文件用于此目的。

于 2013-02-25T13:27:57.120 回答
1

创建一个扩展 CI_Controller 的 MY_Controller,在 MY_Controller 构造函数中加载您的全局变量,然后确保所有其他控制器都扩展 MY_Controller 而不是 CI_controller。

请参阅文档:http ://ellislab.com/codeigniter/user-guide/general/core_classes.html

作为记录,可以对所有核心类执行相同的操作,即 MY_Session、MY_Model 等。如果使用它们,重复代码会容易得多。

于 2013-02-25T12:37:13.383 回答
1
    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
}
于 2013-02-25T12:41:33.253 回答