2013-02-07 36 views
1

我需要在Symfony2應用程序的多個地方輸入一對日期和時間。爲了實現這一點,我創建了一個custom_datetime表單類型。我想確定是否需要time,如果整個custom_datetime標記爲required,則需要保留date將單個字段的「必需」信息傳遞給複合Symfony2表單

class DateTime extends AbstractType 
{ 

    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('date', 'text', [ 
       'attr' => ['required' => true] // Here I maybe should inherit what is passed by the parent form 
      ]) 
      ->add('time', 'text', [ 
       'attr' => ['required' => $options['time_required']] 
      ]) 
     ; 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'time_required' => false 
     )); 
    } 

    public function getName() 
    { 
     return 'custom_datetime'; 
    } 
} 

custom_datetime然後通過其他形式。目前我使用這樣的:

// date should be entered, time should not -- this does not currently work 
$builder->add('dt', 'custom_datetime', ['required' => true, 'time_required' => false]); 
// date + time should be entered 
$builder->add('dt', 'custom_datetime', ['required' => true, 'time_required' => true]); 
// neither of date or time is required 
$builder->add('dt', 'custom_datetime', ['required' => false]); 

不幸的是,time場時,當以HTML格式呈現所需要的屬性。

應該怎麼做才能讓父表格custom_datetime通過有關時間字段的「必需」信息?

回答

0

對此,您不應該使用attr屬性。

$builder 
    ->add('time', 'text', array('required' => true)) 
+0

感謝您的回答......正要測試和確認。簡單......這是各種經驗法則,特別是在編程方面。 ;) –

+0

是的,這絕對解決了我的問題。再次感謝你。 –

相關問題