2012-06-28 22 views
12

मैंने अपने आवेदन में एक इकाई के भीतर निम्न चर परिभाषित किया है। मेरे पास यह अन्य फ़ील्ड के बीच है जिसे एक फॉर्म इंटरफ़ेस के माध्यम से अपडेट किया जा सकता है और मैं इस फ़ॉर्म को इस बॉक्स को चेक और अनचेक करने में सक्षम होना चाहता हूं।सिम्फनी में चेकबॉक्स को खाली करने की अनुमति कैसे दें?

मैं बॉक्स को चेक कर सकता हूं और फॉर्म ठीक कर सकता हूं, लेकिन ऐसा लगता है कि जब मैं बॉक्स को अनचेक करता हूं, तो मैं फॉर्म सबमिट नहीं कर सकता। यह मुझे Please check this box if you want to proceed देता है।

/** 
* @var boolean $updatesNeeded 
* 
* @ORM\Column(name="updates_needed", type="boolean", nullable=false) 
*/ 
private $updatesNeeded; 

मैं nullable=true को nullable=false बदल रहा है और स्कीमा को अद्यतन करने की कोशिश की, लेकिन यह काम करने के लिए प्रतीत नहीं होता। कोई भी उपाय बहुत प्रशंसनीय होगा।

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilder; 

class BlahType extends AbstractType 
{ 
    /** 
    * @param \Symfony\Component\Form\FormBuilder $builder 
    * @param array        $options 
    */ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('stuff') 
      ->add('updatesNeeded', 'choice', array('required' => false)) 
      ->add('anothervar'); 
    } 
} 

उत्तर

-3

ठीक है यह है कि मैं अपनी साइट के गलत संस्करण उपयोग कर रहा था लगता है। सभी विधियों ने काम का उल्लेख किया है, और मैं बस उन लोगों के लिए संक्षेप में सारांशित करना चाहता हूं जो भविष्य में ऐसी समस्या में भाग लेते हैं।

यहां मुद्दा यह है कि एचटीएमएल 5 अपने आप फॉर्म को मान्य करना पसंद करता है और किसी भी फॉर्म इनपुट में required="required" जोड़ता है। आम तौर पर, यह शायद एक उपयोगी बात है, लेकिन कुछ चीजों के लिए चेकबॉक्स जैसे, आप उन्हें अनचेक छोड़ने और क्लाइंट साइड पर शिकायत करने वाले ब्राउज़र के बिना फॉर्म सबमिट करने का विकल्प चाहते हैं।

इस समस्या को हल करने के कई तरीके हैं, कुछ दूसरों की तुलना में बेहतर हैं।

आधिकारिक symfony docs द्वारा उल्लिखित अनुसार एचटीएमएल 5 का उपयोग करके फ़ॉर्म के लिए सभी सत्यापन को अक्षम करना है।

अन्य nullable=true बनाने, टिप्पणियों में इकाई चर में जानकारी जोड़ने के लिए है। यह आपके डेटाबेस में संबंधित कॉलम को शून्य मान रखने की अनुमति देता है, जो आपकी स्थिति के लिए वांछनीय हो सकता है या नहीं। यह नीचे दिखाया गया है।

/** 
* @var boolean $varName 
* 
* @ORM\Column(name="var_name", type="boolean", nullable=true) 
*/ 
private $varName; 

आखिरकार, फॉर्म बनाने के दौरान, कुछ विकल्प हैं जिनका उपयोग आप फॉर्म में सत्यापन के लिए कर सकते हैं। docs विवरण और अधिक उदाहरण दें, लेकिन यहां हमारे उद्देश्यों के लिए, महत्वपूर्ण हिस्सा यह है कि आप 'required' => false सेट कर सकते हैं, जैसा कि मैंने नीचे दिखाया है।

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilder; 

class BlahType extends AbstractType 
{ 
    /** 
    * @param \Symfony\Component\Form\FormBuilder $builder 
    * @param array        $options 
    */ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('stuff') 
      ->add('checkbox_var', 'checkbox', array('required' => false)) 
      ->add('anothervar'); 
    } 
} 

उन सभी लोगों के लिए धन्यवाद जिन्होंने इस मुद्दे के साथ मेरी मदद की। मुझे आशा है कि इससे किसी ऐसे व्यक्ति की मदद मिलेगी जो भविष्य में इस तरह के मुद्दों से निपटने के लिए है।

-1

क्या सिर्फ nullable=""

+1

यह झूठी – Squazic

25

का उपयोग कर यह त्रुटि है क्योंकि इनपुट एचटीएमएल 5 विशेषता required="required" के साथ चिह्नित है के बारे में। अपने फॉर्म प्रकार में आप इस चेकबॉक्स पर required विकल्प को सेट करके इसे अक्षम कर सकते हैं।

$builder->add('updatesNeeded', 'choice', array('required' => false)); 

http://symfony.com/doc/current/book/forms.html#book-forms-html5-validation-disable

+0

के बराबर शून्य बनाने के बराबर कॉलम उत्पन्न करता है मैंने HTML पर देखा और ऐसा लगता है कि इनपुट टैग में 'आवश्यक = "आवश्यक है। हालांकि, यह समाधान मेरे लिए कुछ भी प्रतीत नहीं होता था। मैंने 'बंडल/फॉर्म/EntityType.php' फ़ाइल का 'बिल्डफॉर्म' फ़ंक्शन संपादित किया। क्या यह सही जगह है? – Squazic

+0

वह जगह होगी। क्या 'आवश्यक' विशेषता वाले कोई अन्य फ़ील्ड हैं? क्या आप क्रोम से या सिम्फनी से आने वाले त्रुटि संदेश हैं? – MDrollette

+0

अन्य क्षेत्रों में 'आवश्यक' विशेषता भी है।मैं वास्तव में फ़ायरफ़ॉक्स का उपयोग कर रहा हूं और यह उससे आ रहा है। – Squazic

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