Codeigniter中的全局数据阵列

时间:2012-03-08 18:49:28

标签: php codeigniter

我有一个像这样的数组

  $meta = array(
       'meta_description' => 'lorem ipsum',
       'meta_keywords' => 'this, is, a, keyword'
  );

如果我在我的控制器方法中有这个,我可以将它传递给部分如此:$this->template->set_partial('header', 'layouts/header', $meta)并且传递正常。

我将元标记存储在数据库中,所以我最好将它放在MY_Controller中,并根据该帖子的元标记的数据库值填充数组。

如果我将其移出控制器方法之外,我会得到Message: Undefined variable: meta  作为一个错误。

如何让它全球可用?

2 个答案:

答案 0 :(得分:1)

我想我明白了。

我刚创建了一个处理元数据的新模型,然后将以下内容插入到MY_Controller的构造方法中:

 $meta = $this->meta_data_model->get_item_meta();

 $this->template->set_partial('header', 'layouts/header', $meta);

这似乎工作正常,不确定是否有更好的方法。

答案 1 :(得分:0)

您想要全局访问的任何内容都应存储在用户会话中:

$this->load->library('session'); // Unless auto loaded
$this->session->set_userdata('meta', $meta);

然后在您需要的地方找回它:

$meta = $this->session->userdata('meta');