2

我无法在本地服务器中使用 Symfony2 会话。我收到“通知:会话已经开始 - 忽略 session_start()”错误。

相同的脚本在我的生产服务器中运行良好。

我在 Windows 7 上使用 Xampp 和 PHP 5.3.5。会话 auto_start 在 php.ini 中关闭。

任何提示都会有所帮助。谢谢

4

1 回答 1

12

我想这有点晚了,但如果它可以帮助:

确保在 php.ini 中关闭 session.autostart (0)

从控制器使用 Symfony 2 中的会话的方式如下:

$session = $this->getRequest()->getSession();

// store an attribute for reuse during a later user request
$session->set('foo', 'bar');

// in another controller for another request
$foo = $session->get('foo');

// use a default value if the key doesn't exist
$filters = $session->get('filters', array());

http://symfony.com/doc/current/book/controller.html#managing-the-session

或从视图:

{{ app.session.get('foo') }}

即使在读取/写入会话数据时会自动调用 start(),您也应该调用它(因为建议使用它,例如 getId() 不会调用它)

$session->start();
$id = $session->getId();

http://symfony.com/doc/master/components/http_foundation/sessions.html

您可能无法在生产服务器上收到错误的原因是它的优先级仅为“通知”。

于 2012-11-14T04:26:29.153 回答