2009-11-19 18 views

Antwort

32

In Ihrem Controller können Sie über das Benutzerobjekt auf Sitzungsvariablen zugreifen.

// Get a session value 
$name = $this->getUser()->getAttribute('name', 'default_value'); 
// Set a session value 
$this->getUser()->setAttribute('name', $value); 
+1

In Ihrer Ansicht können Sie Sitzungsvariablen über die '$ sf_user' -Variable aufrufen, genauso wie Sie es mit' $ this-> getUser() 'im Controller machen. – Throoze

+0

Ich glaube nicht, dass dies funktioniert, wenn Sie keinen Benutzer oder eine Firewall haben. – Ascherer

80

In Symfony2, die Syntax ist anders:

$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'); 

Sie können auch Session-Variablen von Zweig erhalten, ohne explizit die Session-Variable passieren zu müssen (es ist in der globalen 'App'):

+2

** Symfony: ** _wow, wer interessiert sich wirklich für das Gesetz von Demeter? _ – rdlowrey

+5

Wie die Verwendung von Sitzungen Variablen das Demeter-Gesetz verletzt? – Videl

+3

@Videl es verwendet keine Sitzungen, die LoD, seine Abstraktionsschicht von Symfony verletzt. –