我有各种调用启动会话的方法和类,有时会导致错误"Failed to start the session because headers have already been sent"
让我想知道,在哪里开始会议的好地方?每个请求只调用一次的某个地方,以及每次请求调用的某个地方。像主控制器?
答案 0 :(得分:3)
要开始会话,你应该这样做:
use Symfony\Component\HttpFoundation\Session\Session;
$session = new Session();
$session->start();
Symfony documentation Sessions chapter说..
Symfony会话旨在取代几个本机PHP函数。 应用程序应避免使用session_start(), session_regenerate_id(),session_id(),session_name()和 session_destroy(),而是使用以下部分中的API。
修改强>:
查看symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php(第142行)
session.use_cookies
文件中是否启用了php.ini
?