आप की जाँच Form's sourcecode here
Form
को परिभाषित करता है एक तरीका लागू इसके बारे में एक बेहतर समझ प्राप्त कर सकते हैं:
def apply(key: String): Field = Field(
this,
key,
constraints.get(key).getOrElse(Nil),
formats.get(key),
errors.collect { case e if e.key == key => e },
data.get(key))
के रूप में दस्तावेज़ में कहा, यही कारण है, किसी भी क्षेत्र देता है, भले ही यह अस्तित्व में नहीं है । और एक Field
एक errors
सदस्य जो एक Seq[FormError]
देता है:
तो, आप (Seq[FormError]
के लिए) ऐसा ही कुछ कर सकता है:
eventForm("name").errors.foreach { error =>
<div>@error.message</div>
}
या (के लिए Option[FormError]
)
eventForm("name").error.map { error =>
<div>@error.message</div>
}
या, आप Form
errors
:
का उपयोग कर सकते हैं 0
और किसी दिए गए कुंजी की सभी त्रुटियां प्राप्त करें। इस (Seq[FormError]
के लिए) की तरह:
eventForm.errors("name").foreach { error =>
<div>@error.message</div>
}
या (Option[FormError]
के लिए)
eventForm.error("name").map { error =>
<div>@error.message</div>
}
आपको और अधिक जानकारी चाहते हैं, स्रोत कोड की जाँच करें। यह अच्छी तरह से लिखा है और अच्छी तरह से टिप्पणी की है।
चीयर्स!
संपादित करें:
रूप biesior टिप्पणी की: अलग-अलग भाषाओं के साथ मानव पठनीय सुंदर संदेश दिखाने के लिए आप कैसे खेलने I18N बाहर काम करता है here
पूरी तरह से आप शायद करने के लिए जा रहे हैं होना करने के लिए जाँच करने के लिए है I18N के साथ सौदा। यह सब काम करने के लिए मुश्किल नहीं है। documentation पढ़ने के बाद भी आप स्वयं को थोड़ा सा दूषित कर सकते हैं। मैं आपको थोड़ा धक्का दूंगा।messages
फ़ाइल को अपने conf
फ़ोल्डर में जोड़ें और आप इसकी सामग्री को here से कॉपी कर सकते हैं। इस तरह आप डिफ़ॉल्ट संदेशों पर अधिक नियंत्रण रखेंगे। यदि error.message
error.invalid
थे यह संदेश पहले conf/messages
फ़ाइल Invalid value
में परिभाषित दिखाना चाहते
eventForm.errors("name").foreach { error =>
<div>@Messages(error.message, error.args: _*)</div>
}
उदाहरण के लिए,: अब, अपने दृश्य में, आप ऐसा कुछ करने के लिए सक्षम होना चाहिए। args
कुछ तर्क परिभाषित करें कि आपका त्रुटि संदेश संभाल सकता है। उदाहरण के लिए, यदि आप error.min
को संभालने वाले थे, तो arg
न्यूनतम मान आवश्यक हो सकता है। आपके संदेश में आपको केवल {n}
पैटर्न का पालन करना होगा, जहां n आपके तर्क का आदेश है।
बेशक
, आप ऐसा अपने स्वयं के संदेशों परिभाषित कर सकते है:
error.futureBirthday=Are you sure you're born in the future? Oowww hay, we got ourselves a time traveler!
और अपने नियंत्रक में आप अपने प्रपत्र की जांच कर सकता है जैसे कि (सिर्फ एक कोड की पंक्ति आप इसे की भावना को दिखाने के लिए)
"year" -> number.verifying("error.furtureBirthday", number <= 2012) // 2012 being the current year
यदि आप भाषाओं के साथ खेलना चाहते हैं, तो बस दस्तावेज़ों का पालन करें।
चीयर्स, फिर से!
बस पाठ्यक्रम की नोक, मानव पठनीय संदेश प्रदर्शित करने के लिए यह ''
यीप, I18N एक और कहानी – wleao
तो मुझे लगता है कि मैं वास्तव में खेलने का उपयोग करने के स्केला सीखने की जरूरत है के रूप में इस्तेमाल किया जाना चाहिए। wleao, आपके उदाहरण काम किया। एक मानव पठनीय संदेश प्राप्त करने के लिए मुझे @Messages (error.message) का उपयोग करने की आवश्यकता थी, जैसा कि biesior ने कहा था। – Brian