我根本不是指如何在CodeIgniter中定义全局变量/常量。 让我解释: 我已经制作了一个主题引擎,可以从当前登录用户的控制面板中选择。这个引擎不是很复杂,而是一个简单的文件夹。无论如何,我在整个应用程序中所做的是,我编写了一行代码来获取用户选择的当前主题。我使用一行代码来获取名称,然后将其存储在变量中:
$theme_name = $this->theme->get_theme_with_slash(false);
然后,我像这样使用$ theme_name来获得正确的视图:
$this->load->view($theme_name.'result', $data);
在我加载视图的所有控制器中,我应该重复这个过程。我需要的是调用获取theme_name的函数并存储在变量中,然后在整个应用程序中使用变量/ session / function。我的方法目前是帮助器的功能,与会话/变量相比,它不太方便。
答案 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