2012-08-04 13 views
5

से एक व्यक्तिगत पैरामीटर को कैसे हटा सकता हूं मेरे पास निम्न अनुरोध ऑब्जेक्ट है और किसी फ़ॉर्म पर बाध्य करने से पहले नियंत्रक से 'email_suffix' को निकालना चाहते हैं। क्या यह संभव है? इस काम करता है -मैं Symfony2 अनुरोध ऑब्जेक्ट

public 'request' => 
    object(Symfony\Component\HttpFoundation\ParameterBag)[8] 
     protected 'parameters' => 
     array 
      'registration' => 
      array 
       'email' => string 's' (length=1) 
       'email_suffix' => string 'y.com' (length=5) 
       'password' => string '1234' (length=4) 
       '_token' => string '967d99ba9f955aa67eb9eb004bd331151d816d06' (length=40) 
      'product_id' => string '2' (length=1) 
      'product_description' => string '12 month membership' (length=19) 
      'product_price' => string '6.99' (length=4) 

मैं $request->request->remove("registration[email_suffix]");

मैं $ अनुरोध> अनुरोध कर सकते हैं> हटाने ("पंजीकरण") की कोशिश की है।

अभी के लिए, मैं यह कर रहा हूं:

$requestReg = $request->request->get('registration'); 
$requestReg['email'] = $requestReg['email'].'@'.$requestReg['email_suffix']; 
unset($requestReg['email_suffix']); 
$request->request->set('registration',$requestReg); 
+0

आपका मतलब है '$ अनुरोध> attributes-> get (...)'? –

+0

आपका दृष्टिकोण (पंजीकरण पैरामीटर प्राप्त करना, उस सदस्य को हटाना जो आप नहीं चाहते हैं और इसे फिर से सहेजना) मुझे ठीक लगता है। समस्या क्या है? –

+0

@ करलोसग्रानाडोस मैं सिर्फ यह जानना चाहता था कि ऐसा करने का एक क्लीनर तरीका था। जाहिर है वहाँ नहीं है। – codecowboy

उत्तर

1

मुझे यकीन नहीं कर रहा हूँ अगर आपकी कॉल $request->request टाइपो है।

आपको $request->attributes के साथ काम करना चाहिए जो ParameterBag वर्ग का प्रतिनिधित्व करता है।

यदि आप ParameterBag में विधियों के माध्यम से जाएंगे तो आप देखेंगे कि सरणी के अंदर चर को अनसेट करने का कोई तरीका नहीं है।

+0

धन्यवाद। $ अनुरोध-> अनुरोध वही काम करता है। आपके उत्तर के लिए धन्यवाद। – codecowboy

+0

आप पैरामीटर प्राप्त कर सकते हैं, जो कुछ भी आप चाहते हैं उसे अनसेट करें और पैरामीटर बैग को अपडेट करने के लिए प्रतिस्थापन() विधि का उपयोग करें ... लेकिन अपवॉटिंग, क्योंकि इस जवाब ने मुझे –

8

symfony2 में अनुरोध ऑब्जेक्ट से पैरामीटर जोड़ने और निकालने की संभावना है। आपको ParameterBag Component पर देखना होगा, remove($key) नामक इस तरह की विधि है, यही आपको चाहिए।

तो आपके अनुरोध के लिए समाधान इस तरह हो सकता है, अगर आप इसे नियंत्रक वस्तु से फोन:

$this->get('request')->query->remove('email_suffix'); 
+1

अच्छा लगा और लार्वेल 5.1 के लिए काम करता है (क्योंकि यह सिम्फनी के अनुरोध वर्ग को बढ़ाता है)। धन्यवाद! –

+0

यह वह है जो सिम्फनी 2.7 के लिए काम करता है; 'क्वेरी', 'गुण' नहीं। मेरे मामले में यह एक क्वेरी स्ट्रिंग ("रीफ्रेश") था, मैं कर्नेल इवेंट श्रोता में हस्तक्षेप कर रहा था और नियंत्रक कहने से पहले इसे हटाना चाहता था। – toddkaufmann