我在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
中没有显示我做错了什么?
答案 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');