2009-11-19 20 views

cevap

32

Denetleyicinizde, oturum değişkenlerine kullanıcı nesnesi aracılığıyla erişebilirsiniz.

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

Görüşünüzde, "$ sf_user" değişkeni aracılığıyla oturum değişkenlerine, denetleyicideki $ this-> getUser() 'ile yaptığınız gibi erişebilirsiniz. – Throoze

+0

Bir kullanıcı veya güvenlik duvarınız yoksa, bunun işe yaramayacağını düşünüyorum. – Ascherer

80

Symfony2'de sözdizimi farklıdır:

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

Ayrıca açıkça (küresel 'app' öyle) oturum değişkeni geçmek zorunda kalmadan, Twig gelen oturum değişkenlerini alabilirsiniz:

{{ app.session.get('foo', 'bar'); }} 
+2

** Symfony: ** _beden Demeter Yasasını gerçekten önemseyen kimdir? _ – rdlowrey

+5

Oturumlar değişkenlerinin kullanılması Demeter Yasasını nasıl ihlal eder? – Videl

+3

@Videl, LoD'yi ihlal eden oturumları kullanmıyor, onun soyutlama katmanı symfony'den. –