Forms symfony,当窗体没有此字段时
html表单字段:Forms symfony,当窗体没有此字段时,forms,symfony,Forms,Symfony,html表单字段: class FormType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('a') ->add('b') ->add('c') ->add('d'
class FormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('a')
->add('b')
->add('c')
->add('d');
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' =>'entity'
));
}
}
相反
<form>
<input name="a" value="a">
<input name="b" value="b">
</form
用这个
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('a')
->add('b')
->add('c')
->add('d');
}
像这样更新buildForm函数。在Symfony FormType中,默认情况下,所有字段都是必需的
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('a')
->add('b')
->add('c', TextType::class , array('mapped' => false))
->add('d', TextType::class , array('mapped' => false));
}
如果要持久化数据库c和d中的实体也必须为空如果不想使用字段,为什么要向FormType
添加字段?也许你有不同的用例,你应该考虑动态添加字段吗?
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('a')
->add('b')
->add('c',TextType::class, ['required' => false,'empty_data' => null])
->add('d',TextType::class, ['required' => false,'empty_data' => null] );
}