Я пытаюсь обновить приложение до 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 \ Component \ Форма \ расширение \ Ядро \ Тип \ TextType) [576]
Но я не могу это использовать. Существует ли функция, которая возвращает TextType::class
?
Благодарю.
С Symfony3 то getName()
метод был удален в пользу его полного имени класса (FQCN), поэтому просто используйте get_class()
Функция на это, чтобы решить это:
$type = get_class($event->getForm()->get('title')->getConfig()->getType()->getInnerType());
Других решений пока нет …