我正在尝试将我的应用程序升级到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
的函数?
感谢。
答案 0 :(得分:1)
从Symfony3开始,getName()
方法已被删除,取而代之的是其完全限定类名(FQCN),因此只需使用get_class()
函数来解决它:
$type = get_class($event->getForm()->get('title')->getConfig()->getType()->getInnerType());