【发布时间】:2021-10-30 19:29:32
【问题描述】:
我尝试在 symfony 中添加带有表单事件的字段,但是刷新页面时会自动添加字段...场景是当我填写输入电子邮件字段时显示正文...
代码 PostType:
<?php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class PostType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('titl')->add('email')->add('phone');
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event){
$post = $event->getData();
$form = $event->getForm();
if(!empty($post->getEmail))
{
$form->add('body');
}
});
$builder->add('save', SubmitType::class);
}/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\Post'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'appbundle_post';
}
}
【问题讨论】:
-
这只能通过Javascript来完成