2012-01-06 12 views
7

क्या सिम्फनी 2 में फ्लैश संदेश दिखाना संभव है? या Google समूह पर किसी अन्य possible solution में कोर फ़ाइलों को संपादित करना?रीडायरेक्ट के बिना फ़्लैश संदेश दिखाएं (उदाहरण के लिए आगे)। संदेश दो बार दिखाए गए

//Symfony\Component\HttpFoundation\Session 
public function setFlash($name, $value, $persist = true) 
{ 
    if (false === $this->started) { 
     $this->start(); 
    } 
    $this->flashes[$name] = $value; 
    if($persist) { 
     unset($this->oldFlashes[$name]); 
    } 
    else { 
     $this->oldFlashes[$name] = $value; 
    } 
} 

अद्यतन

ओह वास्तव में मैंने देखा है, तो मैं सिर्फ एक आगे का इस्तेमाल किया, फ्लैश संदेशों दिखाई देगा, लेकिन यह अभी भी

+0

क्या आपका मतलब पृष्ठ ताज़ा किए बिना फ़्लैश दिखा रहा है? या क्या आपका मतलब फ़्लैश और ताज़ा दिखाना है (जैसा कि यह रीडायरेक्ट नहीं करता है) पृष्ठ? – swiecki

+1

@ स्विस, आमतौर पर, फ़्लैश संदेश सेट होते हैं तो उपयोगकर्ता को रीडायरेक्ट किया जाता है। लेकिन अगर मैंने उपयोगकर्ता को रीडायरेक्ट नहीं किया है, जैसे मैंने अभी अग्रेषित किया है या बस वर्तमान अनुरोध में एक संदेश दिखाना चाहते हैं? –

+1

जावास्क्रिप्ट – Dau

उत्तर

7

क्यों चमक का उपयोग कर यदि आप नहीं अंदर से छेड़छाड़ करना चाहते हैं उन्हें अगले आवश्यकता तक बने रहना चाहते हैं EST ?

क्या आप टेम्पलेट पैरामीटर जैसे फीडबैक प्रदर्शित करने के अन्य तरीकों को नहीं ढूंढ पाए?

यदि नहीं, तो आप अपने टेम्पलेट में इस जोड़ सकता है (अनुसार आप नीचे दिए गए की तरह चमक प्रदर्शित कर रहे हैं):

{% if app.session.hasFlash('notice') %} 
<div class="flash-notice"> 
    {{ app.session.flash('notice') }} 
    {{ app.session.removeFlash('notice') }} 
</div> 
{% endif %} 

ताकि कि पुनर्निर्देशन से पहले इन चमक को प्रदर्शित करता है किसी भी टेम्पलेट प्रतिक्रिया लौटने से पहले सत्र से इन्हें निकाल देगा । मुझे लगता है कि यह आखिरी बेहतर समाधान है।

3

मैं सामान्य शब्दों में बात करेंगे, क्योंकि अगले अनुरोध पर दिखाई देगा आप ऐसा कुछ चाहते हैं जो तैयार मानक न हो।

इस समय Symfony फ़्लैश संदेश अनुरोध के बाद प्रकट होते हैं, वे इस तरह से हैं, और इसे संरक्षित करने के लिए, आपको एक विकल्प खोजने की आवश्यकता है, एक AJAX कॉल का उपयोग करें।

आपको AJAX अनुरोध का उपयोग करके एक क्रिया स्क्रिप्ट को कॉल करने, किसी फ़ॉर्म के डेटा को क्रमबद्ध करने, संदेश को वापस करने के लिए और फिर इसे बेहतर तरीके से प्रदर्शित करने के तरीके को प्रदर्शित करने की आवश्यकता है।

मैं कुछ परियोजनाओं में इस नमूने jQuery कॉल के साथ http://jquery.bassistance.de/message/demo/ इस्तेमाल किया, अच्छा काम करता है:

$.post("/product/saveAjax", { $("#product").serialize() }, 
function(data){ 
    $().message(data.message); 
}, "json"); 

ajax साथ एक आइटम की बचत से लौटने अलग है, इस मामले मैं JSON का उपयोग कर डेटा एन्कोडिंग में, हां, तो आप एक और कार्यों आप JSON सारणी में अधिक चरों इंजेक्षन कर सकते हैं perfom उन्हें समारोह (डेटा) {...}

आशा है कि मदद करता है

1

फ्लैश संदेश को पुनर्निर्देशन के माध्यम से रहने के लिए बनाया गया है जो आप आम तौर पर फ़ॉर्म जमा करने की सफलता के बाद करते हैं। यही कारण है कि वे 2 अनुरोधों के लिए रहते हैं।

यदि आप अपने ऐप में सोम उपयोगकर्ता नोटिफिकेशन प्रबंधित करना चाहते हैं, तो अपने लेआउट में एक अधिसूचना TWIG ब्लॉक को प्रबंधित करने वाला नियंत्रक बनाएं। यह ब्लॉक फ़्लैश संदेशों को एम्बेड कर सकता है और इन सूचनाओं को आप नियंत्रक के साथ संभालते हैं। आपको उन्हें अपने सत्र में सेट करना होगा, उन्हें अपने अधिसूचना नियंत्रक में हटा दें और यह ठीक है ...

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