使用 $session->getId() 获取会话 ID 在 Symfony2 中返回空结果

qma*_*ats 3 string shopping-cart sessionid symfony

我想获取会话 ID 以将其存储在数据库中(因为我将购物车存储在数据库中)。因此,我想用以下方法获取会话ID:

$session = $this->get('session');
$carts->setSessionId($session->getId());
Run Code Online (Sandbox Code Playgroud)

但这个方法返回一个空结果。这真的很奇怪,因为如果我在我的视图中发送此 ID,例如:

'session' => $session->getId(),
Run Code Online (Sandbox Code Playgroud)

它有效……这真的很奇怪;我的代码有错误吗?

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;
}
Run Code Online (Sandbox Code Playgroud)

谢谢您提前!

Nic*_*ich 5

请确保您的会话已启动,否则Session::getId()返回空字符串('')。请参阅Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage

$session = $this->get('session');
$session->start();
$carts->setSessionId( $session->getId() );
Run Code Online (Sandbox Code Playgroud)