Symfony2会话已经启动 - 忽略session_start()

Die*_*ero 2 session symfony symfony-2.1

我无法在本地服务器中使用Symfony2会话.我收到了"通知:会话已经启动 - 忽略session_start()"错误.

相同的脚本在我的生产服务器中正常工作

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

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

che*_*fly 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());
Run Code Online (Sandbox Code Playgroud)

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

或者从视图来看:

{{ app.session.get('foo') }}
Run Code Online (Sandbox Code Playgroud)

你也应该调用start(),即使你在读/写会话数据时自动调用它(因为它是推荐的,例如getId()没有调用它)

$session->start();
$id = $session->getId();
Run Code Online (Sandbox Code Playgroud)

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

您可能无法在生产服务器上获得错误的原因是因为它的优先级仅为"通知".