我正在使用一个简单的模板系统使用 CI 构建一个网站。
这是我的基本模板:
$this->load->view('includes/header');
$this->load->view($main_content);
$this->load->view('includes/footer');
我有一组变量要传递给我的视图,我知道我可以这样做:
$data['title'] = 'title goes here';
$data['main_content'] = 'name of page goes here';
$this->load->view('template', $data);
到现在为止还挺好。但是我希望上面的变量集具有默认值,因此我不必在每次加载模板时都声明整个变量集。
我想出的解决方案是在我的主控制器下声明公共静态变量,如下所示:
public static $default_data = array(
'title' => 'Generic Title Goes Here',
'main_content' => 'home_view'
);
然后我可以像这样加载我的视图:
$data = Home::$default_data;
$data['main_content'] = 'member_login_view'; // I can now declare only the relevant variables. all the rest will have the default values
$this->load->view('includes/template', $data);
这种方法工作正常,但我有一个问题:我想设置为默认值的一些变量不是静态的。例如,在标题中,我有一个统计数据行,显示我网站上的注册用户数量,以及我的数据库中的产品数量。所以我称之为
$data['stats'] = $this->products_model->get_stats();
有没有办法为这些变量设置默认值,所以我不必在每个页面加载之前调用模型中的方法?