2017-01-23 65 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());