我使用codeigniter开发一个网站。我想将一个特定的数据传递给所有的控制器。我搜索并找到它可以通过下面的会话来完成。
$var = $this->session->userdata('passingdata');

但是当清除历史记录和会话到期时,此数据会丢失。
是否有其他方法可以将变量传递给所有控制器。
答案 0 :(得分:2)
你可以试试这个 - 在application / core中创建MY_Controller。它看起来像
Class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('HomeModel');
$this->global_data['settings']= $this->HomeModel->getSettings();
}
function display_view($view, $local_data = array()) {
$data = array_merge($this->global_data, $local_data);
return $this->load->view($view, $data);
}}
然后在所有控制器中扩展此控制器
你的控制器中的功能如
Class Home extends MY_Controller {
public function index() {
$data['title'] = 'test';
$this->display_view('home', $data);
}
}