2012-09-26 16 views
5

में रीडायरेक्ट पर गायब हो जाता है मैं सिम्फनी 2.0 से सिम्फनी 2.1 में माइग्रेट कर रहा हूं। अगर मैं (एक बुरा मार्ग पारित करके उदाहरण के लिए) कोई त्रुटि उत्पन्नफ़्लैश संदेश सिम्फनी 2.1

public function createEntidadeAction() { 
    $this->get('session')->getFlashBag()->set('error', 'message'); 
    return $this->redirect($this->generateUrl('EntidadeBundle_index')); 
} 

, मैं प्रोफाइलर पर जाँच करें कि फ़्लैश संदेश है:

मैं अपने नियंत्रक पर निम्नलिखित सरल कोड है।

हालांकि अगर मैं रीडायरेक्ट को सफल होने देता हूं, तो फ़्लैश संदेश गायब हो जाता है और कुछ भी प्रदर्शित नहीं होता है। मेरे पास मेरे संबंधित ट्विग टेम्पलेट पर फॉलोइंग है:

{% for flashMessage in app.session.flashbag.get('error') %} 
    <div class="flash-notice"> 
     {{ flashMessage }} 
    </div> 
{% endfor %} 

मैं इसे समझ नहीं सकता। मैं क्या खो रहा हूँ? फ्लैश संदेश पहले रीडायरेक्ट के बाद रहना चाहिए, नहीं?

उत्तर

6

मैंने इसे समझ लिया।

सत्र संदेशों के कारण फ्लैश संदेश दिखाई नहीं दे रहे थे।

सिम्फनी 2.1 अब डिफ़ॉल्ट रूप से storage_id और handler_id के लिए session.storage.native का उपयोग करता है।

कृपया जांचें कि इस सत्र समस्या को हल किया गया था here

6

सबसे पहले, फ्लैश बैग पर set के बजाय add विधि का उपयोग करने का प्रयास करें। दूसरा, इस टेम्पलेट को आजमाएं जो मेरे लिए काम करता है:

{% for type, flashMessages in app.session.flashbag.all() %} 
    {% for flashMessage in flashMessages %} 
     <div class="alert alert-{{ type }}"> 
      {{ flashMessage|trans }} 
     </div> 
    {% endfor %} 
{% endfor %} 
+0

समस्या यह नहीं है कि मैं इसे प्रदर्शित कर रहा हूं। फ्लैश संदेश सचमुच अपमान करता है। अगर मैं प्रोफाइलर को देखता हूं, तो फ्लैश संदेश नहीं है। पहले रीडायरेक्ट के ठीक बाद। ऐड का उपयोग करके यह नहीं बदला। शायद यह कुछ PHP विन्यास है। मेरे पास config.yml में है: 'session: storage_id: session.storage.mock_file' ताकि इसमें php.ini कॉन्फ़िगर हो। – Fonsini

+0

नकली फ़ाइल भंडारण? इसका उपयोग परीक्षण के लिए किया जाना चाहिए - वास्तविक सत्रों के लिए नहीं। 'Session.storage.native' का प्रयोग करें। –

+0

समस्या यह है कि मुझे स्थानीय सत्र से पथ सहेजने के लिए स्थानीय सिम्फनी सत्र की आवश्यकता होती है। और स्थानीय मूल्य में मेरे पास ** सी:/वैंप/www/सिम्फनी/सहानुभूति/ऐप/कैश/देव/सत्र ** है और मास्टर वैल्यू में ** c:/wamp/tmp ** है। प्रमाणीकरण कारणों के लिए यह ठीक नहीं है (मैं सरल सैम php का उपयोग कर रहा हूँ)। इस मामले में मुझे क्या करना चाहिए? मुझे सिम्फनी 2.0 पर यह समस्या नहीं थी। स्थानीय सत्र पथ पथ को सहेजना सिम्फनी द्वारा नहीं बदला गया था। – Fonsini

संबंधित मुद्दे