2012-04-11 26 views
8

Symfony दस्तावेज़ का कहना है:
Symfony2: पीएचपी टेम्पलेट में सत्र वैश्विक चर

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.

उदाहरण:
टहनी में: {{ app.request.method }}
PHP में: echo $app->getRequest()->getMethod() टहनी में: {{ app.user.username }}
लेकिन सत्र वस्तु के लिए:
ट्विग में: {{ app.session.varname }}
PHP में: // I don't know, do you know how to call it?

मैं कोशिश की है: $session = $app->getSession('uid'); लेकिन जब मैं एक डेटाबेस में संग्रहीत करने के लिए प्रयास करें यह मुझसे कहता है:

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

वहाँ संसाधन की कमी है जब यह पीएचपी टेम्पलेट्स के लिए आता है, लेकिन मेरे मामले में मैं परिवर्तन नहीं कर सकते कुछ कारणों से।

दूसरे शब्दों में सवाल, PHP टेम्पलेटिंग में समतुल्य क्या है:
{{ app.session.varname }}?

उत्तर

13

टहनी में: {{ app.session.varname }}

PHP में: echo $app->getSession()->get('uid');

+1

अरे क्या तुम मुझे मजाक कर रहे हो? :) महान आदमी, यह किया, आपके जवाब के लिए एक टन धन्यवाद। –

+0

कोई मजाकिया इरादा नहीं है। मैंने आपके प्रश्न पर टिप्पणी की और यह स्पष्ट करने के लिए तैनात किया कि किस समस्या को संबोधित किया जा रहा था। फिर @ डैनियल रिबेरेरो गए और सामान संपादित किया। कोई विचार नहीं, लेकिन यह इरादा क्यों गड़बड़ कर दिया। – Cerad

+0

मेरा बुरा, यह अच्छे इरादे से था। –

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

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

क्या आप वाकई किसी पृष्ठ.html.php टेम्पलेट में काम करते हैं? यह मुझे यह गलती देता है: 'नोटिस: अपरिभाषित संपत्ति: सिम्फनी \ बंडल \ फ्रेमवर्क बंडल \ टेम्पलेटिंग \ हेल्पर \ सत्र हेल्पर :: सी में $ uid: \ wamp \ www \ ...' मैं पहले से ही आपके नियंत्रक को डिफ़ॉल्ट नियंत्रक में उपयोग कर रहा हूं प्रत्येक नियंत्रक के लिए और सत्र मूल्य प्रस्तुत करने के लिए, जिस चीज को मैं अपने प्रश्न से बचने की कोशिश कर रहा हूं, मुझे वैश्विक वैरिएबल का उपयोग करने की आवश्यकता है क्योंकि ऊपर सिम्फनी 2 डॉक्स कहते हैं। –

0

आप error_log $ app- की कोशिश की है> getSession() को देखने के लिए यह क्या देता है?

error_log(var_dump($app->getSession(), true)); 
संबंधित मुद्दे