【发布时间】:2013-03-24 14:21:31
【问题描述】:
我有一个 Blog 类型,并且我希望仅当用户在 select 字段中进行特定选择时才将某些字段添加到表单中。我听说过 EventListener,但我认为没有可以订阅的 FormEvent,因此侦听器实际上可以跟踪选择事件。
我怎样才能做到这一点?
这是我的博客类型:
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';
}
}
【问题讨论】:
-
有什么解决办法吗?我遇到了同样的问题,请在用户在选择字段中进行特定选择后填写表单。
标签: forms symfony event-listener