我想在自定义模块中设置会话变量。
我正在使用
自定义模块的控制器中的$_SESSION['product_id'] = "12";
。
当我尝试在configurable.phtml
模板中获取此会话时,它无法找到正确的值。
请告诉我如何正确设置会话变量,以及如何使用Magento 2.0在模板中再次读取此会话值
答案 0 :(得分:1)
这是块类。
<?php
namespace YourNamespace\YourModule\Block;
class YourModule extends \Magento\Framework\View\Element\Template
{
protected $_catalogSession;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Catalog\Model\Session $catalogSession,
array $data = []
)
{
$this->_catalogSession = $catalogSession;
parent::__construct($context, $data);
}
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getCatalogSession()
{
return $this->_catalogSession;
}
}
?>
现在,我们从模板(.phtml)文件设置并获取会话。
// set product id in catalog session
$block->getCatalogSession()->setProductId(12);
// get product id from catalog session
echo $block->getCatalogSession()->getProductId();
// unset session variable
$block->getCatalogSession()->unsProductId();