【发布时间】:2016-07-30 14:47:19
【问题描述】:
我是 PHP Phalcon 的新手,我正在创建一个简单的 REST API 后端,我现在遇到了一个问题。
//define $app in index.php
$app = new Micro($di) ;
在一个控制器中,我试图至少在控制器之间定义(添加)一个全局可访问变量。
//However, the followings are all not working.
$this->currentWeixinAccessToken = $access_token ;
$this->getDI()->setShared('currentWeixinAccessToken', $access_token);
$this->$currentWeixinAccessToken = $access_token;
$this->di->setShared('currentWeixinAccessToken', $access_token) ;
它们可以毫无错误地定义,但是当我在另一个控制器中使用它们时,
$access_token = $this->currentWeixinAccessToken;
错误是,
[Sat Jul 30 22:10:20 2016] PHP Notice: Access to undefined property currentWeixinAccessToken in /home/tom/src/phalcontest/app/controllers/PostsController.php on line 48
我在这里找到了一些答案,但它们对我不起作用。 Cross controller variables in Phalcon
【问题讨论】:
-
如果控制器 B 扩展控制器 A,这应该可以工作。但是按照您描述的方式,这是不可能的。我猜您正在寻找类似 Sessions 行为的东西,但不完全是;)如果将该变量添加到 $di 您将能够访问它。
-
是的,它会喜欢会话行为,但是这个变量在所有会话中都是一样的/
-
其他控制器(postcontroller)是否从同一个请求访问它?还是在另一个页面上
标签: php variables global phalcon