ブログタイプがあり、ユーザーが選択フィールドで特定の選択を行った場合にのみ、特定のフィールドをフォームに追加したいと考えています。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';
}
}