我在所有视图中使用$data $this->load->view('my_view', $data);
我也有一个自动控制器遵循本指南扩展核心控制器
但是我想使$data成为全局的,因为在views中有一个边栏,它是整个项目的常量,并在自动加载控制器中显示通过db获取的信息。
目前,我必须手动编写$data‘’todo‘,并从自动加载的模型中获取信息。
谢谢。
发布于 2010-03-26 22:37:23
1:使用以下内容在MY_Controller中创建application/libraries:
类MY_Controller扩展控制器{ var $data;//构造函数}
2:在所有控制器文件中将Controller替换为MY_Controller,并用$this->data加载视图
类联系人扩展控制器{//.}类联系人扩展了MY_Controller { $this->load->view(' Contact _view',$this->data);}
通过这种方式,您可以执行适用于MY_Controller中的整个站点的默认功能,比如加载设置。
发布于 2010-03-26 23:20:45
今天早些时候我遇到了一个类似的问题。我发现一个更容易的方法,而不是全局,是使用常量。可以定义将从index.php文件加载的常量文件:
// Include additional constants
$defines_file = 'includes/defines.php';
if (file_exists($defines_file))
{
require_once($defines_file);
} 然后可以将常量添加到defines.php文件中:
define(MY_CONSTANT,'my constant info');这样,它们就可以直接在整个系统的任何文件中使用:echo MY_CONSTANT;或者您可以将它们分配给变量。
我决定这样做对我来说更容易,因为如果我需要更改常量的话,我只有一个位置可以去。
更多:http://codeigniter.com/forums/viewthread/56981/#280205
发布于 2013-01-11 08:18:13
我使用一个助手函数来调用一个全局函数!
例如:
function get_user($userid){
$CI =& get_instance();
$query = $CI->db->get_where('users', array('id' => $userid), 1, 0);
foreach ($query->result() as $row){
// Return a object with userdata!
return $row;
}
}现在我可以在任何地方访问我的用户数据。
https://stackoverflow.com/questions/2527119
复制相似问题