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

时间:2013-05-25 20:30:59

标签: symfony shopping-cart sessionid string

我想获取会话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;
}

先谢谢你!

1 个答案:

答案 0 :(得分:3)

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

$session = $this->get('session');
$session->start();
$carts->setSessionId( $session->getId() );