2017-01-23 44 views
1

我试图将我的应用程序升级到Symfony3。在Symfony2中在我的事件监听,我有:在窗体EventListener中获取字段类型类

$typeTitle = $event->getForm()->get('title')->getConfig()->getType()->getName(); 

它返回“文本”后,我可以用它来改变我的领域

$form->add('title', $typeTitle, array_replace($optionsTitle, array(
    'disabled' => true 
))); 

但Symfony3参加的第二个参数TextType::class。我可以写这个,但我更喜欢它保持动态。

我想:$event->getForm()->get('title')->getConfig()->getType()->getInnerType();返回:

对象(Symfony的\分量\表格\延期\核心\型号\ TextType)[576]

但我不能使用它。它是否存在返回TextType::class的函数?

谢谢。

回答

1

由于Symfony3的getName()方法有利于它的完全限定类名(FQCN)的被删除,因此就使用get_class()功能这个来解决这个问题:

$type = get_class($event->getForm()->get('title')->getConfig()->getType()->getInnerType());