我有一个博客类型,并且我希望仅当用户在选择字段中进行特定选择时才将某些字段添加到表单中。我听说过EventListener,但我认为没有可以订阅的 FormEvent ,因此侦听器实际上可以跟踪选择事件。
我怎样才能做到这一点?
这是我的BlogType:
namespace Blogger\BlogBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Blogger\BlogBundle\Form\EventListener\AddAuthorFieldSubscriber;
class BlogType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add('blog')
->add('category', 'entity', array(
'class' => 'BloggerBlogBundle:Category',
'property' => 'name',
)
->add('onlyifdefaultcategory')
);
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Blogger\BlogBundle\Entity\Blog',
'cascade_validation' => true,
));
}
public function getName()
{
return 'blogger_blogbundle_blogtype';
}
}