我无法在本地服务器中使用Symfony2会话。我收到了“通知:会话已经启动 - 忽略session_start()”错误。
相同的脚本在我的生产服务器中正常工作。
我在Windows 7上使用Xampp和PHP 5.3.5。在php.ini中,会话auto_start已关闭。
任何提示都会有所帮助。感谢
答案 0 :(得分: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(),也应该调用start()(因为建议使用它并且getId()不会调用它)
$session->start();
$id = $session->getId();
http://symfony.com/doc/master/components/http_foundation/sessions.html
您可能无法在生产服务器上收到错误的原因是因为它的优先级仅为“通知”。