2013-02-21 19 views
0

我正在使用CodeIgniter构建一个webapp,但我对它很陌生。 我有不同部分的首页使用数据库中的不同数据阵列。跨多个视图的CodeIgniter持久数据

我想要的是从基础控制器加载数据一次,并扩展此控制器并在多个视图中重复使用这些数据。

我不想做的是重复跨其他控制器相同的数据库调用。

这甚至可能吗?

我现在拥有的是:

class MY_Controller extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $data['somevar'] = $this->some_model->get(); 
    } 

} 

我想用$ somevar在foreach循环在页面的一个部分。

注意:我正在使用模板库。

任何帮助将不胜感激。

回答

1

您需要了解的是,页面的每次刷新都会重新加载整个CI应用程序(以便每次页面加载都会发生构造函数调用)。因此,从一个视图到下一个视图的数据调用没有持久性(因为您的确在谈论新的页面)。

您必须想出另一种持久化数据的方式 - 可以存储在cookie,客户端存储,会话或服务器端缓存中。这样,数据就可以在单独的页面视图中使用,而不需要一遍又一遍的重复请求。

+0

谢谢你的回应。 – Maurice 2013-02-22 08:15:25