我在所有观看中 使用$ data$this->load->view('my_view', $data);
但是我希望将$ data全局化,因为views有一个侧栏对整个项目来说是常量,并显示通过自动加载控制器中的db获取的信息
目前我必须为每个人手动编写$ data ['todo']并从自动加载模型中获取信息.
谢谢.
Shi*_*ant 16
1:创建MY_Controller在application/libraries与下列内容:
Run Code Online (Sandbox Code Playgroud)class MY_Controller extends Controller { var $data; //constructor function }
2:替换Controller为MY_Controller所有控制器文件并加载视图$this->data
Run Code Online (Sandbox Code Playgroud)class Contact extends Controller { //to.. } class Contact extends MY_Controller { $this->load->view('contact_view', $this->data); }
这样,您可以在MY_Controller类似加载设置中执行适用于整个站点的默认功能.
我今天早些时候遇到了类似的问题.我发现使用常量更简单,而不是全局变量.您可以定义将从index.php文件加载的常量文件:
// Include additional constants
$defines_file = 'includes/defines.php';
if (file_exists($defines_file))
{
require_once($defines_file);
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以将常量添加到defines.php文件中:
define(MY_CONSTANT,'my constant info');
Run Code Online (Sandbox Code Playgroud)
这样,它们可以直接在整个系统的任何文件中使用:echo MY_CONSTANT;或者您可以将它们分配给变量.
我决定这种方式对我来说会更容易,因为我只需要一个位置去/当我需要更改常量时.
更多:http://codeigniter.com/forums/viewthread/56981/#280205