2012-08-08 9 views
20

मैं सिम्फनी 2 और FOSUserBundle का उपयोग कर रहा हूं।एक फ़ील्ड को आवश्यक नहीं होने के लिए मजबूर करें

जैसा कि प्रलेखन में विस्तृत है, मैंने उपयोगकर्ता इकाई में "नाम" संपत्ति को ओवरराइड किया है और बनाया है।

मैं सभी आवश्यक करता हूं और आखिरकार उस फ़ील्ड को फॉर्म व्यू में दिखाया जाता है।

बात यह है: जब मैं form_widget(form.name) पर जाता हूं और इनपुट HTML टैग उत्पन्न होता है, तो इसके लिए एक आवश्यक = "आवश्यक" संपत्ति उत्पन्न होती है। और जब इंजन भर नहीं जाता है तो इंजन इनपुट को लाल करने का कारण बनता है।

सिमफ़ोनी 2 को यह फ़ील्ड अनिवार्य बनाने के लिए मैं कैसे कहूं? मुझे लगता है कि यह है कि यह यहाँ हो गया है:

 parent::buildForm($builder, $options); 

    // add your custom field 
    $builder->add('name', 'text', array('label' => 'form.name')); 
    $builder->remove('username'); 

या यहाँ:

/** 
* @ORM\Column(type="string", length="255") 
* 
* @Assert\MinLength(limit="0", message="The name is too short.", groups={"Registration", "Profile"}) 
* @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"}) 
*/ 
private $name; 

उत्तर

47
$builder->add('name', 'text', array('label' => 'form.name','required' => false)); 
+5

+1 - हो सकता है कि वहाँ जोड़ने के लिए कि यह सिर्फ प्रपत्र तत्व पर एचटीएमएल 5-सत्यापन बंद हो जाता है। आपकी इकाई से सभी आवेषण इत्यादि अभी भी चालू हैं और इकाई को जारी रखने से पहले भी वैध होना चाहिए। – insertusernamehere

+3

क्या सत्यापन समूह के माध्यम से ऐसा करने का कोई तरीका है? मैं उन्हें html5 आवश्यक विशेषताओं को प्रभावित नहीं कर सकता, जो मेरे लिए बेकार पर सत्यापन समूह बनाता है। –