Symfony 6 RequestStack 会话没有获得价值
Symfony 6 RequestStack Session not getting value
到目前为止,我一直在使用 Symfony 5.2。现在我用 Symfony 6 安装了新环境。
现在Session引擎已经改变,RequestStack现在应该可以使用了。
我设置为 https://symfony.com/doc/current/session.html.
看起来,值正在保存而不是再次加载(session 文件夹中包含相应的文件)。
初始路线:
/**
* @Route(
* "/",
* name="home",
* methods={"GET","POST"}
* )
*
* @param RequestStack $requestStack
* @return Response
*/
public function index(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
$session->set('test','test');
return $this->render('main/index.html.twig', []);
}
测试路线:
/**
* @Route(
* "/test",
* name="test",
* methods={"GET","POST"}
* )
* @param RequestStack $requestStack
* @return Response
* @throws Exception
*/
public function test(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
echo "Test: ".$session->get('test','err'); // <== I get 'err'
return $this->render('main/index.html.twig', []);
}
- 每次主页面刷新,都会创建新的会话文件。
- 在浏览器中我没有看到相应的会话哈希
- 在 JavaScript document.cookie = "MyCookie"; 有效
我发现问题:由于更新了Symfony和PHP,通过域名访问资源需要有证书。安装后 lets encrypt 它可以工作(也仅适用于内部访问)。
到目前为止,我一直在使用 Symfony 5.2。现在我用 Symfony 6 安装了新环境。
现在Session引擎已经改变,RequestStack现在应该可以使用了。 我设置为 https://symfony.com/doc/current/session.html.
看起来,值正在保存而不是再次加载(session 文件夹中包含相应的文件)。
初始路线:
/**
* @Route(
* "/",
* name="home",
* methods={"GET","POST"}
* )
*
* @param RequestStack $requestStack
* @return Response
*/
public function index(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
$session->set('test','test');
return $this->render('main/index.html.twig', []);
}
测试路线:
/**
* @Route(
* "/test",
* name="test",
* methods={"GET","POST"}
* )
* @param RequestStack $requestStack
* @return Response
* @throws Exception
*/
public function test(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
echo "Test: ".$session->get('test','err'); // <== I get 'err'
return $this->render('main/index.html.twig', []);
}
- 每次主页面刷新,都会创建新的会话文件。
- 在浏览器中我没有看到相应的会话哈希
- 在 JavaScript document.cookie = "MyCookie"; 有效
我发现问题:由于更新了Symfony和PHP,通过域名访问资源需要有证书。安装后 lets encrypt 它可以工作(也仅适用于内部访问)。