使用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