2016-07-20 2 views
0

Ich versuche, auf die Sitzungsvariablen in dem Zweig zuzugreifen, der in dem Controller festgelegt wird. Aus irgendwelchen Gründen funktioniert es nicht im Zweig. Ich habe die Sitzungsvariablen überprüft, die in einem anderen Controller drucken, der das erwartete Ergebnis aber die Variable zeigt, die in Vorlage leer ist. Ich weiß nicht, ob mir etwas in der Konfiguration fehlt.Kann Sitzungsvariablen in Zweig in Symfony3 nicht drucken

//Below is my code in controller 

$session = $request->getSession(); 
$session->set('user', [ 
    'id' => $user->getId(), 
    'firstName' => $user->getfirstname() 
]); 

// code in twig 
{{ dump(app.session) }} 
+0

Sind Gabe Sie die '$ session' Variable über Zweig? –

+0

Nein. Ich übergebe $ session Variable nicht an Zweig. Ich denke über seine globale Konfiguration, die das $ session-Array nicht explizit an den Zweig übergibt. Liege ich falsch? – user1965773

+0

Oh, dumm mich! Sie haben natürlich Recht bezüglich der globalen Variable. –

Antwort

1

Nein, nicht davon ausgehen, dass Sitzungsvariablen global sind.

Ich habe das getan und Sie müssen über Array übergeben, wenn Sie Ihren Zweig rendern. Etwas wie folgt aus:

return $this->render('my_twig_file.html.twig', array(
     'user' => $session->get('user'), 
)); 

dann in Twig es Dump:

{{ dump(user) }} 

Also, stellen Sie sicher, dass Sie nicht Dump in Ihre ART-Umgebung verwenden. Möglicherweise möchten Sie den Speicherauszug kommentieren, wenn Sie mit dem Testen fertig sind, oder eine andere Datei verwenden.