我做的非常相似,這個食譜例如http://symfony.com/doc/current/cookbook/form/dynamic_form_generation.html#adding-an-event-subscriber-to-a-form-class添加實體字段類型,形成與事件訂閱類
的主要區別是,我的字段類型是一個實體,而不是文本類型的東西。
所以,我的領域用戶preSetData方法是這樣的:
public function preSetData(DataEvent $event)
{
$data = $event->getData();
$form = $event->getForm();
if (null === $data) {
return;
}
if(!$data->getIsCategorized()){
$form->add(
$this->factory->createNamed('categories', 'entity', array(
'class' => 'My\PostBundle\Entity\Category',
'property' => 'name',
'multiple' => true,
'label' => 'Category'
)
)
);
}
}
如果我直接在我的表單類型與$builder->add('categories, 'entity', array(...
新增的實體這是給下面的錯誤
Class does not exist
500 Internal Server Error - ReflectionException
它工作正常
是否有可能以這種方式使用字段事件訂閱者將實體字段類型附加到表單上?