Php zend framework 3会话不工作

Php zend framework 3会话不工作,php,session,zend-framework,zend-framework3,Php,Session,Zend Framework,Zend Framework3,我正在尝试设置zend framework 3 MVC web应用程序以使用会话存储。以下是本网站的信息:-- 一切都很好。我在控制器中获得了会话变量,可以将数据保存到会话容器中。问题是,我保存到容器中的数据在后续调用中不存在。我从一个页面保存搜索条件,并重定向到第二个页面进行搜索并返回结果。当我进入第二页时,会话数据不存在 在config\global.php中,我有-- 在application\module.php中,我修改了onBoostrap public function onBo

我正在尝试设置zend framework 3 MVC web应用程序以使用会话存储。以下是本网站的信息:--

一切都很好。我在控制器中获得了会话变量,可以将数据保存到会话容器中。问题是,我保存到容器中的数据在后续调用中不存在。我从一个页面保存搜索条件,并重定向到第二个页面进行搜索并返回结果。当我进入第二页时,会话数据不存在

在config\global.php中,我有--

在application\module.php中,我修改了onBoostrap

public function onBootstrap(MvcEvent $event)
{
    $application = $event->getApplication();
    $svcMgr = $application->getServiceManager();

    //  Instantiate the session manager and
    //  make it the default one
    //
    $sessionManager = $svcMgr->get(SessionManager::class);
 }
我创建了一个IndexController工厂

class IndexControllerFactory implements FactoryInterface
{
    public function __invoke(ContainerInterface $container,
                             $requestedName, array $options = null)
    {
        // Get access to session data
        //
        $sessionContainer = $container->get('Books\Session');
        return new IndexController($sessionContainer);
    }
}
修改了我的IndexController以添加构造函数方法

class IndexController extends AbstractActionController
{
    private $session;

    public function __construct(Container $session)
    {
        $this->session = $session;
    }
在application\module.config.php中,我有一个

'controllers' => [
    'factories' => [
        Controller\IndexController::class => Controller\Factory\IndexControllerFactory::class,
    ],
],
'session_containers' => [
    'Books\Session'
],

要在会话中存储内容,可以按如下方式创建容器:

// Create a session container
$container = new Container('Books\Session');
$container->key = $value;
要稍后从会话容器中检索内容,您必须创建一个同名的新容器:

// Retrieve from session container
$container = new Container('Books\Session');
$value = $container->key;
据我所知,这对ZF2和ZF3都有类似的作用,例如可以在或中找到

如果您创建了一个新的
容器
,用于存储或解析会话中的数据,如果您自己没有传递,它将自动使用默认会话管理器

你可以看到。如果传递给构造函数的
$manager
null
,它将在其中获取默认会话管理器

因此,要使用会话,您不需要进行大量手动配置

如果这不能解决你的问题,请留下评论

// Retrieve from session container
$container = new Container('Books\Session');
$value = $container->key;