2017-05-22 35 views
1

我有兩種形式。對於子表單,我需要刪除所需的選擇性字段。如何從子窗體的字段中刪除所需字段symfony2

CourseType形式:

class CourseType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('contactName', TextType::class, [ 
      'attr' => [ 
       'placeholder' => 'Enter Contact name' 
      ]]) 
      ->add('save', SubmitType::class, array('label' => 'Submit')); 
    } 
} 

BulkCourseUpdate形式:

class BulkCourseType extends CourseType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     parent::buildForm($builder, $options); 
     $builder->add('ids', HiddenType::class, array(
      'data' => $options['ids'], 
      'mapped' => false 
     )); 

     //need to remove required for contactName field 
    } 

    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults([ 
      'ids' => null 
     ]); 
    } 
} 

什麼是去除上面的例子中這個屬性最簡單的方法?

+0

in options pass''required'=> false'。 –

+0

如何從'CourseType'爲'contactName'字段的'BulkCourseType'形式傳遞''required'=> false'? 'configureOptions'方法中的 –

+0

。 –

回答

0

最簡單的方法:

$builder->get('contactName')->setRequired(false); 

感謝所有

+0

要在所有表單域中取消'required',你可以在'$ resolver-> setDefaults(['required'=> false,')''configureOptions'中定義以下內容:' –

0
class BulkCourseType extends CourseType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
    parent::buildForm($builder, $options); 
    $builder->add('ids', HiddenType::class, array(
     'data' => $options['ids'], 
     'mapped' => false, 
     'required' => false, 
    )); 
    } 

public function configureOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefaults([ 
     'ids' => null 
    ]); 
} 

}

你試過嗎?

+0

這不完全是你想要的...您需要從父窗體中刪除必填字段,而不是這個 –