Symfony 3-使用会话变量?

时间:2019-04-17 11:47:11

标签: php symfony session twig

我想为我的网站使用会话变量。

我做了:

$request = new Request();

    $session = $request->getSession();

    if ($session == null)
    {
        $session = new Session();
    }
$session->set('typeAuth','cas');

但是在我的控制器中,当我通过以下方式调用此会话变量时:

    $typeAuth = $_SESSION->get('typeAuth');

我有:

  

注意:未定义的变量:会话

我不明白为什么

1 个答案:

答案 0 :(得分:0)

您可以将SessionInterface直接插入构造函数中,然后将其用作服务的属性。

例如:

use Symfony\Component\HttpFoundation\Session\SessionInterface; // <--- use this namespace

class AuthCasService extends AuthAbstract implements AuthInterface {

    private $serializer;
    private $session;

    // Inject the SessionInterface ----------------------------------------------------------V-----------------------V
    public function __construct(EntityManagerInterface $em, SerializerInterface $serializer, SessionInterface $session)
    {
        $this->em = $em;
        $this->serializer = $serializer;
        $this->session = $session;
    }

    // Your methods ...
}

,然后在您的方法中,删除$session = $request->getSession();并使用$this->session->set('foo', 'bar');