如何在cakephp 3.4中创建全局变量

时间:2017-05-24 13:14:57

标签: cakephp cakephp-3.0

我在CakePHP 3.4中工作,想要创建一个存储的全局变量 一些可以在整个应用程序中使用的信息。

我试过这段代码 在s.ctp中,这是我写的第一个控制器

 <?php
 namespace App\Controller;
 use Cake\Controller\Controller;
 use Cake\Event\Event;
 use Cake\Core\Configure;

 Configure::write('variable_name', 'Some Value');
  ?>

并在我的代码为

p.ctp中获取此全局变量
 <?php 
 namespace App\Controller;
 use Cake\Controller\Controller;
 use Cake\Event\Event;
 use Cake\Core\Configure;

echo Configure::read('variable_name');
 ?>

echo中没有显示我做错了什么?

2 个答案:

答案 0 :(得分:2)

您希望在bootstrap.php或AppController中初始化全局变量。如果您在AppController中使用initialize()方法执行此操作: -

public function initialize()
{
    parent::initialize();
    Configure::write('variable_name', 'Some Value');
}

然后,您应该在视图模板中使用它,如问题所示。

答案 1 :(得分:0)

我认为您希望将此数据存储在Session Object

$name = $this->request->session()->read('User.name');

// If you are accessing the session multiple times,
// you will probably want a local variable.
$session = $this->request->session();
$name = $session->read('User.name');


$session->write('first_access', true);
$first_access = $session->read('first_access');