Zend Framework 3とSessionManagerを使用して、いくつかのデータの検証後に確認ダイアログを表示するコントローラプラグイン/ビューヘルパーを作成しようとしています。アイデアは、確認ダイアログが必要とするすべてのものをSession変数に設定し、ビューで読み込み、設定を解除するだけでした。しかし、この単純なサイクルでも失敗します。設定を解除してリセットした後にセッション変数が空になる
public function __invoke() {
$data = $this->sessionManager->getStorage()->confirmDialog;
$this->sessionManager->getStorage()->clear('confirmDialog');
return $this->getDialog($data);
}
私はプラグインとの両方にSessionManagerのを注入実行します。私はこれを行う私のビューヘルパーを呼び出すlayout.phtmlで
$dataArray = [
'some_data' => 'data'
];
$this->sessionManager->getStorage()->confirmDialog = $dataArray;
:コントローラによって呼び出されたとき、プラグインは基本的にこれを行いますヘルパーを表示する。データを受け取った後に変数をクリアしないと、セッション変数から変更されたデータを取得し、プラグインによって更新されます。最初に変数を読み取った後に変数をクリアすると、その変数は常に空になります。
ここに私のglobal.phpセットアップ:
'session_manager' => [
'validators' => [
RemoteAddr::class,
HttpUserAgent::class,
]
],
'session_storage' => [
'type' => SessionArrayStorage::class
]
なぜ単にflashmessengerプラグインを使用しないのですか? https://docs.zendframework.com/zend-mvc-plugin-flashmessenger/ – LWjuniOr