获取表单EventListener中的字段类型类

时间:2017-01-23 14:22:51

标签: php types symfony addeventlistener

我正在尝试将我的应用程序升级到Symfony3。在我的EventListener中的Symfony2中,我有:

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

它会返回' text'在我可以用它来改变我的领域之后

$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 个答案:

答案 0 :(得分:1)

从Symfony3开始,getName()方法已被删除,取而代之的是其完全限定类名(FQCN),因此只需使用get_class()函数来解决它:

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