खेल में का उपयोग कर रूपों में क्षेत्र की वैधता सुनिश्चित करें! ढांचा, स्केला का उपयोग कर, कहते हैं कि मैं एक रूप है कि इस प्रकार जैसे:प्ले करें! ढांचा 2.0: अन्य क्षेत्रों
import play.api.data._
import play.api.data.Forms._
import play.api.data.validation.Constraints._
case class User(someStringField: String, someIntField: Int)
val userForm = Form(
mapping(
"someStringField" -> text,
"someIntField" -> number verifying(x => SomeMethodThatReceivesAnIntAndReturnsABoolean(x))
)(User.apply)(User.unapply)
)
जहां SomeMethodThatReceivesAnIntAndReturnsABoolean
एक विधि है कि पूर्णांक पर कुछ तर्क यह मान्य करने के लिए करता है।
हालांकि, someIntField
को सत्यापित करते समय मैं someStringField
के मान पर विचार करने में सक्षम होना चाहता हूं, क्या यह खेल ढांचे के रूपों में इसे प्राप्त करने का एक तरीका है? मुझे पता है कि मैं कुछ ऐसा कर सकते हैं:
val userForm = Form(
mapping(
"someStringField" -> text,
"someIntField" -> number
)(User.apply)(User.unapply)
.verifying(x => SomeFunctionThatReceivesAnUserAndReturnsABoolean(x))
और उसके बाद मैं पूरे उपयोगकर्ता उदाहरण उपलब्ध होता सत्यापन कार्य करने के लिए पारित कर दिया। उस दृष्टिकोण के साथ समस्या यह है कि परिणामी त्रुटि someIntField
फ़ील्ड से जुड़े होने के बजाय पूरे फॉर्म से जुड़ी होगी।
वहाँ पूरे फार्म के बजाय एक तरह से दोनों बातें विशिष्ट क्षेत्र मैं सत्यापित करना चाहते हैं के लिए जुड़े त्रुटि मिलती है, एक और क्षेत्र का उपयोग कर एक क्षेत्र को मान्य और बनाए रखने के लिए है?
यह अजीब बात है। मैंने सोचा था कि एक निश्चित क्षेत्र की आवश्यकता होती है जब एक और क्षेत्र खाली नहीं था, सामान्य बात थी, और जटिल तर्क नहीं माना जाता था। इस प्रकार यह अजीब बात है कि कोई भी इससे पहले, विशेष रूप से नाटक में कूद गया है! फ्रेमवर्क निर्माता स्वयं। –