Magento 2丢弃所有会话参数

tho*_*mas 5 php session magento magento2

我写了一个magento控制器,它在客户会话中存储了一些过滤器信息.

根据magento 2文档,我使用依赖注入让magento为我生成会话对象:

/**
 * @var \Magento\Catalog\Model\Session
 */
protected $_filterSession;

/**
 * @param \Magento\Customer\Model\Session $filterSession
 */
public function __construct( \Magento\Customer\Model\Session $filterSession)
{
    $this->_filterSession = $filterSession;
}
Run Code Online (Sandbox Code Playgroud)

注射过程非常顺利.我能够访问会话,在其中存储变量并在进一步调用时返回它.

但magento似乎不时丢弃整个会话信息.我无法确切地确定magento丢弃信息的那一刻,它似乎有点随机.

这是代码:

$this->_filterSession->setFrequency($frequency);
$frequency = $this->_filterSession->getFrequency();
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的会话范围,但行为是一样的.

经过多次尝试后,我尝试使用PHP会话来存储信息,但即使是这个会话也不时被丢弃.

我不知道我做错了什么或者这可能是造成这种奇怪行为的原因.是否有其他人有类似的问题或想法是什么原因?

托马斯先谢谢你

小智 2

当浏览器丢失会话 cookie 时,通常会发生这种情况。当变量丢失时,您应该检查域名在会话期间是否发生变化。或者使用不同的浏览器。可能是一些行为不当的浏览器插件。或者一些 Magento 扩展。目前许多 Mageno 2 扩展都写得不好。