我想获取会话ID并将其存储在数据库中(因为我将购物车存储在数据库中)。因此,我想用这个方法获取会话ID:
$session = $this->get('session');
$carts->setSessionId($session->getId());
但是这个方法返回一个空结果。这真的很奇怪,因为如果我在我的视图中发送此 ID,例如:
'session' => $session->getId(),
它有效……这真的很奇怪;我的代码有错误吗?
getSessionId() 和 setSessionId() 函数:
/**
* Set sessionId
*
* @param string $sessionId
* @return Carts
*/
public function setSessionId($sessionId)
{
$this->sessionId = $sessionId;
return $this;
}
/**
* Get sessionId
*
* @return string
*/
public function getSessionId()
{
return $this->sessionId;
}
提前谢谢您!
请确保您的会话已启动,否则 Session::getId() 返回 am 空字符串 ('')。 请参阅 Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage
$session = $this->get('session');
$session->start();
$carts->setSessionId( $session->getId() );
如果会话尚未启动,getId() 方法将返回空字符串。手动启动会话时,不要忘记检查会话是否尚未启动。
if(!$session->isStarted()) {
$session->start();
}