2017-01-23 4 views
1

Ich versuche, meine Anwendung auf Symfony3 zu aktualisieren. In Symfony2 in meinem Eventlistener, ich habe:Get Feldtyp Klasse in Form EventListener

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

Es gibt 'Text' und, nachdem ich es verwenden kann mein Feld

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

Aber Symfony3 Teilnahme TextType::class im zweiten Parameter zu ändern. Ich kann das schreiben, aber ich bevorzuge, dass es dynamisch bleibt.

Ich habe versucht: $event->getForm()->get('title')->getConfig()->getType()->getInnerType(); es zurück:

Objekt (Symfony \ Component \ Formular \ Extension \ Core \ Art \ Texttype) [576]

Aber ich es nicht verwenden können. Existiert eine Funktion, die TextType::class zurückgibt?

Danke.

Antwort

1

Da Symfony3 die getName() Methode hat sich für seine vollständig qualifizierten Klassennamen (FQCN), so dass nur verwenden get_class() Funktion auf diese entfernt wurde, es zu lösen:

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