2012-09-04 18 views
10

symfony2 में फॉर्म सत्यापन संदेशों को ओवरराइड करने के लिए कैसे करें। यद्यपि एक validation.xml फ़ाइल संबंधित मॉडल वर्ग है। मुझे लगता है कि यह एचटीएमएल 5 के आधार पर एक फॉर्म मान्य करता है।symfony2 पर फॉर्म सत्यापन संदेश ओवरराइडिंग

"कृपया अनुरोधित प्रारूप से मेल करें", "कृपया इस क्षेत्र को भरें"। क्या इस सत्यापन संदेशों को ओवरराइड करने का कोई तरीका है।

कृपया मुझे इस संबंध में मदद, मैं एक दिन से अधिक के लिए अटक कर रहा हूँ, के रूप में मैं पूरी तरह

उत्तर

12

उन संदेशों जैसा कि आप देख एचटीएमएल 5 सत्यापन संदेश जो ब्राउज़र द्वारा बनाई गई हैं कर रहे हैं सिम्फोनी के लिए नया हूँ। यदि आप उन्हें ओवरराइड करना चाहते हैं तो आपको उस फ़ील्ड से जुड़े इनपुट टैग में एक oninvalid विशेषता जोड़ने की आवश्यकता है। आप दो तरह से कर सकते हैं:

अपने नियंत्रक या प्रपत्र प्रकार में, प्रपत्र क्षेत्र से इस विशेषता को जोड़ें:

$builder->add('email', 'email',array(
    'attr'=>array('oninvalid'=>"setCustomValidity('Would you please enter a valid email?')") 
)); 

या, अपने टहनी टेम्पलेट में, इस विशेषता जोड़ने जब प्रपत्र क्षेत्र प्रतिपादन:

{{ form_row(form.email, { 'attr': {'oninvalid': "setCustomValidity('Please give me a nice email')"} }) }} 
+0

फ़ाइल बनाकर अनुवाद लागू कर सकते हैं धन्यवाद, यही वह है जिसे मैं ढूंढ रहा हूं। समय पर एक :) – satdev86

+0

लेकिन यदि आप इसे इस तरह से करते हैं, तो आप एक अमान्य ईमेल पता दर्ज करते हैं, तो त्रुटि आती है, आपका सही ईमेल पता है लेकिन त्रुटि अभी भी आ रही है। क्यूं कर? – craphunter

+3

कार्लोस का जवाब लगभग सही है, लेकिन इसमें कुछ समस्याएं हैं। वर्कअराउंड के लिए "http://stackoverflow.com/questions/10361460/how-can-i-change-html-5-form-valalidation-errors-default-messages" देखें। – IsraelWebDev

3

आप जब ज़ोर घोषित संदेश विकल्प के लिए प्रत्येक सत्यापनकर्ता धन्यवाद का संदेश बदल सकते हैं:

/** 
    * @ORM\Column(type="string", length=255, unique=true) 
    * @Assert\NotBlank(
    *  message="You have to choose a username (this is my custom validation message).", 
    *  groups={"registration", "account", "oauth"} 
    *) 

इसके अलावा आप फ़ाइल माइबंडल/संसाधन/अनुवाद/validators.fr.xliff

+0

नहीं, जिन संदेशों को वह संदर्भित करता है वे HTML5 सत्यापन संदेश हैं जो ब्राउज़र –

+0

द्वारा बनाए गए हैं, मैंने देखा है कि ^^ ' – Sybio

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