2012-04-11 19 views
8

Symfony'nin doc diyor ki:
Symfony2'nin: PHP şablonda Session Küresel değişken

During each request, Symfony2 will set a global template variable app in both Twig and PHP template engines by default. The app variable is a GlobalVariables instance which will give you access to some application specific variables automatically:
app.security - The security context.
app.user - The current user object.
app.request - The request object.
app.session - The session object.
app.environment - The current environment (dev, prod, etc).
app.debug - True if in debug mode. False otherwise.

Örnekler: dal olarak
: PHP {{ app.request.method }}
: dal olarak echo $app->getRequest()->getMethod() : {{ app.user.username }}
Ama oturumu nesnesi için:
Dal: {{ app.session.varname }}
PHP'de: // I don't know, do you know how to call it?

denedim: $session = $app->getSession('uid'); ama bir veritabanına depolamak çalıştığınızda bana söyler:

Catchable Fatal Error: Object of class Symfony\Component\HttpFoundation\Session could not be converted to string in C:\wamp\www...

Orada PHP şablonları gelir kaynaklarının eksikliği, ama benim durumumda ben geçemezsiniz bazı nedenlerden dolayı.

Başka bir sorudaki soru, PHP'nin karşılığı olan değer nedir:
{{ app.session.varname }}? dal olarak

cevap

13

: PHP {{ app.session.varname }}

: echo $app->getSession()->get('uid');

+1

Hey benimle dalga mı geçiyorsun? :) Harika adam, bu yaptı, cevabınız için teşekkürler. –

+0

Alay etmek istenen bir şey değil. Sorunun, adresin hangi sorun olduğunu açıklamak için yorumlandığını ve konumlandırılmasını sağladım. Sonra @Daniel Ribereiro içeri girdi ve düzenledi. Neden olduğu hakkında bir fikrin yok ama niyetini karıştırdı. – Cerad

+0

Benim kötü, iyi niyetle oldu. –

0
$session = $this->get('session'); 

if ($session->has('varname')) { 
    echo $session->varname 
} 
+1

Bunun bir page.html.php şablonunda çalıştığından emin misiniz? Bana bu hatayı veriyor: 'Uyarı: Tanımsız mülk: Symfony \ Bundle \ FrameworkBundle \ Templating \ Helper \ SessionHelper :: C: \ wamp \ www \ içinde uid ... \ Zaten kodunuzu Varsayılan Denetleyicide kullanıyorum Her bir kontrolör için ve oturum değerini oluşturduğumda, buradaki sorumumdan kaçınmaya çalıştığım şey, yukarıda Symfony2'nin dediği gibi global bir değişken kullanmam gerekiyor. –

0

sen Error_log $ app- çalıştık> getSession() döndürür ne olduğunu görmek için?

error_log(var_dump($app->getSession(), true));