Question: I have created a session variable in one controller and I want to access it in another controller. In `loginsuccess` controller I set the session: 

```
$session->set('id',$id);

```

How can I access this variable in another controller?

Answer: 
While Cyprian answer is valid, you will find in the documentation the following usage:

```
use Symfony\Component\HttpFoundation\Session\Session;

$session = new Session();
$session->start();

// set and get session attributes
$session->set('id',$id);
$session->get('id'); //this is the line you are looking for

```

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

Note:

> 
> While it is recommended to explicitly start a session, a sessions will
>  actually start on demand, that is, if any session request is made to
>  read/write session data.
> 
> 
>
**In a Symfony 6 controller:**

Add an argument to your action and type-hint it with `SessionInterface`. ([see doc](https://symfony.com/doc/current/controller.html#managing-the-session))

```
<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;

class FooController
{
    public function index(SessionInterface $session): Response
    {
        $session->set('id', $id);

        ...
    }
}

```

**In a Symfony 6 service:**

Inject the `RequestStack` service to the constructor and get the session from it. ([see doc](https://symfony.com/doc/current/session.html#basic-usage))

```
<?php

namespace App\Service;

use Symfony\Component\HttpFoundation\RequestStack;

class FooService
{
    public function __construct(private RequestStack $requestStack)
    {
    }

    public function bar()
    {
       $session = $this->requestStack->getSession();
       $session->set('id', $id);

       ...
    }
}

```