php - 如何在 CodeIgniter 中使动态变量值全局化?

标签 php codeigniter codeigniter-3

如何制作一个始终在变化的全局变量?

我想在 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/

相关文章:

php - 尝试显示类别

php - 如何从firebase存储PHP获取图像的下载URL?

php - 如何在codeigniter中从另一个 Controller 加载 Controller ?

php - codeigniter 将参数传递给 Controller

php - 在codeigniter中批量删除

php - Laravel 5.3 资源路由名称

php - Laravel - Twig View 中的 print_r

javascript - 为什么我无法从codeigniter中的数据库返回的js函数中获取数据

php - Codeigniter 3 路由和 404 页面

php - 如何从 Mysql 查询转换为 Codeigniter 语法?