2014-12-07 12 views
12

मेरे पास सिम्फनी 2 में निम्न प्रपत्र प्रकार स्थापित है और मैं dateField पर डिफ़ॉल्ट मान जोड़ने की कोशिश कर रहा हूं लेकिन इसे काम पर नहीं लग रहा है।Symfony2 में फॉर्म वैल्यू ट्रांसफार्मर पर डिफ़ॉल्ट मान सेट करना

नीचे "कोशिश किए गए 1" में मुझे "फॉर्म का व्यू डेटा क्लास डेटटाइम का उदाहरण होने की उम्मीद है, लेकिन एक (एन) स्ट्रिंग" त्रुटि है ... जो मुझे थोड़ा सा पहेली देती है क्योंकि अगर मैं स्ट्रिंग यह मुझे बताता है कि इसे डेटटाइम ऑब्जेक्ट होना चाहिए, और "ट्राइड 2" में यह त्रुटियों के बिना चलता है लेकिन कोई डिफ़ॉल्ट मान नहीं बदला जाता है। वर्तमान में फॉर्म '-0001-11-30 00:00:00' पर डिफ़ॉल्ट है। क्या इस तरह के डिफ़ॉल्ट को सेट करने का कोई तरीका है?

$builder 
     ->add(
      $builder->create('dateField', 'hidden')->addViewTransformer(new DateTimeToStringTransformer()) 
     ) 
     ->add('field2', 'hidden') 
     ->add('field3', 'hidden') 
     ->add('submit', 'submit') 
     ->getForm(); 

की कोशिश की 1:

->add($builder->create('boutDate', 'hidden', array('data' => new \DateTime()))->addViewTransformer(new DateTimeToStringTransformer())) 

की कोशिश की 2:

->add(
    $builder->create('boutDate', 'hidden')->addViewTransformer(new DateTimeToStringTransformer()), 
     'hidden', 
     array('data' => '2014-01-02') 
) 

उत्तर

9

आप ट्रांसफार्मर का उपयोग करने की जरूरत नहीं है। बस स्ट्रिंग डिफ़ॉल्ट मान सेट करें

$builder 
     ->add($builder->create('boutDate', 'hidden', array('data' => '2014-01-02'))) 
     ->add('field2', 'hidden') 
     ->add('field3', 'hidden') 
     ->add('submit', 'submit') 
     ->getForm(); 
संबंधित मुद्दे