CodeIgniter - 每个控制器需要传递给视图的3个变量

时间:2013-12-14 14:50:23

标签: php codeigniter

我正在清理用CodeIgniter编写的Web应用程序。每个主视图都有一个侧边栏,显示一些常见的数据库驱动数据 - 最近的更新,新闻等。我有缓存的查询,以帮助加快速度,但我也在寻找一种更好的方法来实现这一目标。

现在每个控制器加载模型,加载$data数组并将其传递给视图。

我已经扩展了主要的CI控制器类,并且没有在构造函数中加载数据,这简化了代码,但我仍然觉得应该有更好的方法。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不确定这是不是你要问的,但你可以有一个额外的父/基本控制器来加载重复数据,如新闻,更新等......

class baseController extends CI_Controller {


    public function __construct(){
        parent::__construct();
    }

    function viwe($view = 'defualt' , $data = array()){

      $data['updates'] = $this->db->get('updates');
      $data['news']    = $this->db->get('news');
      $this->load->view($view , $data );
    }

}

另一个控制器:

include "baseController.php";
class another extends baseController {

    public function __construct(){
        parent::__construct();
    }

    function index()
    { 
        $data['thisData']  = $this->db->get('thisdata'); 
        $this->view('thisView' , $data  );
    }
}