如何在codeIgniter中定义全局变量(值)

时间:2013-12-07 19:30:45

标签: php codeigniter

我根本不是指如何在CodeIgniter中定义全局变量/常量。 让我解释: 我已经制作了一个主题引擎,可以从当前登录用户的控制面板中选择。这个引擎不是很复杂,而是一个简单的文件夹。无论如何,我在整个应用程序中所做的是,我编写了一行代码来获取用户选择的当前主题。我使用一行代码来获取名称,然后将其存储在变量中:

$theme_name = $this->theme->get_theme_with_slash(false);

然后,我像这样使用$ theme_name来获得正确的视图:

$this->load->view($theme_name.'result', $data);

在我加载视图的所有控制器中,我应该重复这个过程。我需要的是调用获取theme_name的函数并存储在变量中,然后在整个应用程序中使用变量/ session / function。我的方法目前是帮助器的功能,与会话/变量相比,它不太方便。

4 个答案:

答案 0 :(得分:2)

代码中的

可以在

中定义全局常量
config->constants.php

即使您不需要加载它,它也会自动由CI自动加载。

答案 1 :(得分:2)

我从手册中得到了这个,这就是我在config / config.php文件顶部的内容:(我将自定义配置设置为paypal测试)

// HOW TO USE - For example if there's $config['foo'] = 'bar';
// in the config 
// using $this- >config->item('foo') will be 'bar'.

// example for my paypal testing: 
$config['paypaltest']=0;  

http://ellislab.com/codeigniter%20/user-guide/libraries/config.html

以及如何在控制器中访问:

$paypaltest = $this->config->item('paypaltest');

答案 2 :(得分:1)

创建核心控制器,因为您的流程需要逻辑操作,那么您需要一种方法。

<强>应用/核心/ MY_Controller.php

class MY_Controller Extends CI_Controller
{

   protected $default_theme = 'theme';

   public function __construct()
   {
      parent::__construct();
   }

   public function get_theme()
   {
         //your code for selecting the current theme selected from
         //the database
         $theme_from_db = '';

         return $theme_from_db == NULL ? $this->default_theme : $theme_from_db;
   }
}

你的控制器必须扩展MY_Controller

<强>应用/控制器/ view.php

class view extends MY_Controller
{
   public function index()
   {
     $this->load->view($this->get_theme().'result', $data);
   }
}

答案 3 :(得分:0)

In Codeigniter all constant is defined inside application/config/constant.php.
like: define("CONSTANTNAME","value");

Constant degined here is accessible throughout all pages, ie; controllers, models and views