2016-03-03 5 views
8

मैं निम्नलिखित रूप है:चुनाव क्षेत्र डिफ़ॉल्ट मान

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
    ->add('type', ChoiceType::class, array(
     'expanded' => true, 
     'multiple' => false, 

     'choices' => array(
      'Friend' => 'friend', 
      'Guide' => 'guide' 
     ) 
    )); 
} 

मैं 'मित्र' चेकबॉक्स डिफ़ॉल्ट रूप से जाँच की जानी जब प्रपत्र प्रदान की गई है कैसे कर सकते हैं?

उत्तर

7

मुझे लगता है कि आपको data विकल्प के साथ प्रयास करना चाहिए, लेकिन यह केवल उस स्थिति में है जहां आपके ऑब्जेक्ट में डेटा भी सहेजा नहीं गया है, क्योंकि यह इसे और ओवरराइड करेगा।

महत्वपूर्ण: यह क्रिया बनाने के लिए अच्छा है, लेकिन संपादन कार्रवाई के लिए नहीं।

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
     ->add('type', ChoiceType::class, array(
      'expanded' => true, 
      'multiple' => false, 

      'choices' => array(
       'Friend' => 'friend', 
       'Guide' => 'guide' 
      ), 
      'data' => 'friend' 
     )); 
    } 

Official link

निकालें:

जब आप एक फ़ॉर्म बनाते हैं, प्रत्येक क्षेत्र शुरू में प्रपत्र के डोमेन वस्तु की इसी संपत्ति के मूल्य (एक वस्तु है, तो प्रदर्शित करता है फॉर्म से जुड़ा हुआ है)। आप प्रपत्र या सिर्फ एक व्यक्ति के क्षेत्र के लिए प्रारंभिक मूल्य ओवरराइड करना चाहते हैं, तो आप यह डेटा विकल्प

+0

धन्यवाद, यह काम किया! लोअरकेस 'डेटा' => 'दोस्त' –

+1

के साथ आपका स्वागत है, मैं आपके जैसी स्थिति में भविष्य के लोगों के लिए अद्यतन कर रहा हूं। – pbenard

+3

मुझे नहीं लगता कि यह सुरक्षित है: सिम्फनी के अपने दस्तावेज़ों से> __ डेटा विकल्प हमेशा प्रतिपादन करते समय डोमेन डेटा (ऑब्जेक्ट) से लिया गया मान ओवरराइड करता है। इसका अर्थ यह है कि जब ऑब्जेक्ट वैल्यू पहले से ही जारी ऑब्जेक्ट को संपादित करता है, तो ऑब्जेक्ट वैल्यू भी ओवरराइड होता है, जिससे फॉर्म सबमिट होने पर इसे लगातार बनाए रखा जाता है .__ – user2268997

6

उपयोग empty_data प्रपत्र क्षेत्र विकल्प में सेट कर सकते हैं। (data नहीं क्योंकि यह किसी भी पोस्ट किए गए डेटा को ओवरराइड करेगा जबतक कि आप इसे गतिशील रूप से सेट न करें)।

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
    ->add('type', ChoiceType::class, array(
     'expanded' => true, 
     'multiple' => false, 

     'choices' => array(
      'Friend' => 'friend', 
      'Guide' => 'guide' 
     ), 
     'empty_data' => 'friend' 
    )); 
} 

जटिल मामलों के लिए एक और विकल्प Sf Dynamic Form Events का उपयोग करना है।

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