我有一个变量,包含应该存在于整个网站中的数据.我想知道是否有办法让这些数据可用于网站中的每个视图,而不是将这些数据传递给每个控制器的每个视图.
钯.将此数据存储为会话变量/ ci会话cookie不是一种选择.
非常感谢.
Mud*_*ark 24
创建一个MY_Controller.php文件并将其保存在application/core文件夹中.在其中,类似于:
class MY_Controller extends CI_Controller {
public $site_data;
function __construct() {
parent::__construct();
$this->site_data = array('key' => 'value');
}
}
Run Code Online (Sandbox Code Playgroud)
$this->site_data现在可以在整个控制器中查看视图.请注意,为此,所有其他控制器都需要扩展MY_Controller而不是CI_Controller.
Aur*_*rel 16
您需要扩展CI_Controller以创建基本控制器:
https://www.codeigniter.com/user_guide/general/core_classes.html
核心/ MY_Controller.php
<?php
class MY_Controller extend CI_Controller {
public function __construct() {
parent::__construct();
//get your data
$global_data = array('some_var'=>'some_data');
//Send the data into the current view
//http://ellislab.com/codeigniter/user-guide/libraries/loader.html
$this->load->vars($global_data);
}
}
Run Code Online (Sandbox Code Playgroud)
控制器/的welcome.php
class Welcome extend MY_Controller {
public function index() {
$this->load->view('welcome');
}
}
Run Code Online (Sandbox Code Playgroud)
意见/的welcome.php
var_dump($some_var);
注意:要在函数或控制器中获取此变量,您可以使用 $this->load->get_var('some_var')
小智 5
在application / config / autoload.php中设置
$autoload['libraries'] = array('config_loader');
Run Code Online (Sandbox Code Playgroud)
创建应用程序/库/Config_loader.php
defined('BASEPATH') OR exit('No direct script access allowed.');
class Config_loader
{
protected $CI;
public function __construct()
{
$this->CI =& get_instance(); //read manual: create libraries
$dataX = array(); // set here all your vars to views
$dataX['titlePage'] = 'my app title';
$dataX['urlAssets'] = base_url().'assets/';
$dataX['urlBootstrap'] = $dataX['urlAssets'].'bootstrap-3.3.5-dist/';
$this->CI->load->vars($dataX);
}
}
Run Code Online (Sandbox Code Playgroud)
在你看来
<title><?php echo $titlePage; ?></title>
<!-- Bootstrap core CSS -->
<link href="<?php echo $urlBootstrap; ?>css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap theme -->
<link href="<?php echo $urlBootstrap; ?>css/bootstrap-theme.min.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11520 次 |
| 最近记录: |