使用Zend Framework 3和SessionManager的Im,并试图构建控制器插件/视图帮助器,以在验证某些数据后显示确认对话框。这个想法仅仅是设置一个Session变量,其中包含确认对话需要的所有内容,通过视图读取它并将其解除。但即使这个简单的循环失败。会话变量在清除和重置后为空
$dataArray = [
'some_data' => 'data'
];
$this->sessionManager->getStorage()->confirmDialog = $dataArray;
在layout.phtml我打电话给我的视图助手它做到这一点:
public function __invoke() {
$data = $this->sessionManager->getStorage()->confirmDialog;
$this->sessionManager->getStorage()->clear('confirmDialog');
return $this->getDialog($data);
}
我做注射sessionManager的插件和两个在由控制器调用该插件基本上做到这一点查看帮手。在接收到它的数据后,如果不清除变量,我会从会话变量中获取已更改的数据,并且它会由插件更新,但在第一次读取变量后清除变量时,变量始终为空。
这里我global.php设置:
'session_manager' => [
'validators' => [
RemoteAddr::class,
HttpUserAgent::class,
]
],
'session_storage' => [
'type' => SessionArrayStorage::class
]
你为什么不直接使用flashmessenger插件? https://docs.zendframework.com/zend-mvc-plugin-flashmessenger/ – LWjuniOr