如何制作一个始终在变化的全局变量?
我想在 controller
Global_data.php
中创建类似 protected $global_data;
的东西,它可以被很多 Controller 调用,并且将变量 $global_data
值返回到任何具有 $this->load->library('../controllers/Global_data')
的 controller
。
但是当我尝试调用它时,它给了我这个错误Unable to locate the specified class: Session.php
,所以我认为CodeIgniter 3.1.8
not allowed我来做这件事。
那么如何实现我想要的呢?我需要把它放在 model
上,library
文件还是有其他方法可以做到?
谢谢。
这里是 Global_data.php
内容
protected $global_data;
public function __construct()
{
parent::__construct();
$this->global_data = array(
'can_be_anything' => 'can_be_anything',
'can_be_anything' => 'can_be_anything',
'can_be_anything' => 'can_be_anything',
'can_be_anything' => 'can_be_anything',
);
}
Can_be_anything_controller.php
内容
class Can_be_anything_controller extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('../controllers/Global_data');
}
public function index()
{
$data = $this->global_data;
$data['page_title'] = 'Dashboard';
$data['page_directory'] = 'pages/dashboard';
$this->load->view('template', $data);
}
}
最佳答案
您可以在 libraries
目录中为它创建一个库
Global_data.php
文件
class Global_data{
public $global_data;
protected $CI;
public function __construct() {
$this->CI = & get_instance();
}
public function common_data()
{
$this->global_data= array(
'can_be_anything' => 'can_be_anything',
'can_be_anything' => 'can_be_anything',
'can_be_anything' => 'can_be_anything',
'can_be_anything' => 'can_be_anything',
);
return $this->global_data;
}
public function any_method(){
$query = $this->CI->db->get('table_name');
}
}
现在您可以将它加载到任何 Controller 中,例如
$this->load->library('Global_data')
然后使用数据
$data = $this->Global_data->common_data();
您也可以使用 HMVC
模型在任何 Controller 中使用任何方法
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
关于php - 如何在 CodeIgniter 中使动态变量值全局化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49890827/