मुझे Play में दिलचस्प चीज़ मिली है! ढांचे के सत्यापन के रूप में। उदाहरण के लिए मैं ऐसे रूप है:स्कैला प्ले फॉर्म सत्यापन: आवश्यक बूलियन अनिवार्य नहीं है
case class Foo(mystring: String, myint: Int, mybool: Boolean) { // doing cool stuff here }
val myForm = Form(
mapping(
"mystring" -> text,
"myint" -> number,
"mybool" -> boolean
)(Foo.apply)(Foo.unapply))
जब मैं "mybool" मेरे Json, मान्यता गुजरता में मौजूद बिना डेटा बाइंडिंग रहा हूँ और "mybool = false" के साथ एक वस्तु बनाता है। यह काफी अजीब व्यवहार है, जैसे कि मैं एक ही डेटा पास करूंगा, लेकिन "mystring" फ़ील्ड के बिना मुझे Validation Errors: Map(mystring -> error.required)
मिलेगा जो मुझे देखने की उम्मीद है - क्योंकि फ़ील्ड गुम है।
मैं बूलियन फ़ील्ड वैकल्पिक बना रही हूँ, लेकिन मैं मैन्युअल रूप से इस तरह के जांच जोड़ रहा है:
Validation Errors: Map(mybool -> mybool.required)
: क्षेत्र मैं उम्मीद त्रुटि मिल रही है बिना
"mybool" -> optional(boolean).verifying("mybool.required", _.isDefined)
और डेटा बाँध
उदाहरण डेटा सेट:
{
"mystring": "stringHere",
"myint": 33
}
क्यों आवश्यक जांच बूलियन के लिए काम नहीं करता है? इसके लिए सबसे अच्छा कामकाज क्या है? क्या यह एक खेल है! बग या मैं बस कुछ समझ में नहीं आता?
आपके उत्तरों के लिए धन्यवाद।
आपके उत्तर के लिए धन्यवाद। एक स्पष्टीकरण की तरह लगता है। तो शायद यह गलत है, कि मैं अपने आने वाले डेटा को बांधने के लिए फॉर्म का उपयोग कर रहा हूं, जो एपीआई से आता है, HTML फॉर्म से नहीं। अभी के लिए मैं वैकल्पिक बूलियन और मैन्युअल जांच के साथ वर्कअराउंड का उपयोग करूंगा। – psisoyev
यदि आपको सबसे ज्यादा आवश्यकता होती है तो मुझे प्ले के फॉर्म का उपयोग करने में कोई समस्या नहीं दिखाई देती है चाहे डेटा फॉर्म जमा करने या एपीआई अनुरोध के रूप में आ रहा हो। मुझे कहना चाहिए कि मैं स्कैला से बहुत परिचित नहीं हूं इसलिए आप जो चाहते हैं उसे करने के कुछ अंतर्निहित तरीके हो सकते हैं, लेकिन कभी-कभी अपना स्वयं का कस्टम सत्यापन करना आवश्यक है। – estmatic