我想让变量“user”对所有模块都是全局的,所以我添加了这段代码
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$e->getViewModel()->setVariable('user',$e->getApplication()->getServiceManager()->get('auth_service')->getIdentity());
}
它对布局文件工作正常,这意味着如果我在 layout.phtml 中执行 var_dump($user) 它将输出预期的结果,尽管在 View 中执行相同的结果
注意: undefined variable :用户在 C:\webserver\apache\htdocs...
关于为什么会发生这种情况的任何帮助?我做错了什么吗?
最佳答案
使用 Config-Variables 让内容在应用程序范围内可用。
// module.config.php
return array(
'someVariable' => 'someValue',
// all the other stuff
);
您所要做的就是访问配置。当然,访问权限因您尝试访问它的位置而异,但最终是这样完成的:
// Example for being inside any of your Controllers
$servoceLocator = $this->getServiceLocator();
$config = $serviceLocator->get('config');
$myValue = $config['someVariable'];
希望它足够清楚。
关于php - Zend Framework 2 设置全局模块变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495870/