2017-07-20 4 views
2

Ich habe ein sehr einfaches Problem und ich denke, es ist auch sehr häufig. Meine Sonate Admin configureFormFields Funktion wie folgt aussieht:Sonata Formularfeld - ändern Sie ein Feld basierend auf der Auswahl eines anderen Modellfeldes

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('status', 'sonata_type_model', array(
      'required' => true, 
      'btn_add' => false, 
      'expanded' => true, 
     ) 
     ->add('activeReason', 'hidden') 
     ->add('inactiveReason', 'hidden') 
     ->add('onHoldReason', 'hidden') 
    ; 
} 

Der 'Status' Einheit der __toString() -Methode hat definiert und die Werte sind:

  • Aktive
  • Inaktive
  • Halten

Was ich will ist, wenn ich 'Active' aus dem Status wählen, sollte das 'activeReason' Formularfeld angezeigt werden, wo Wenn Sie "Inaktiv" auswählen, wird das andere 2 Grundfeld ausgeblendet und nur das Feld "inactiveReason" und so mit der Auswahl "Halten" angezeigt (es wird die anderen 2 ausblenden und nur das Formularfeld "onHoldReason" anzeigen).

Ich weiß, dass es mit benutzerdefinierten jQuery-Funktionen möglich ist, aber gibt es eine SONATA ADMIN WAY oder SYMFONY WAY? Ich bin mir der Sonatenform vom Typ sonata_type_choice_field_mask bewusst, die eine Reihe von Möglichkeiten haben muss. Gibt es eine Möglichkeit, diese Funktion zu kombinieren oder etwas ähnliches zu tun?

Antwort

0

Sie können es mit diesem Sonatentyp machen. Werfen Sie einen Blick auf diesen Link, er hatte das gleiche Problem und es gelöst:

SonataAdmin - sonata_type_choice_field_mask

+0

Hallo, Vielen Dank für Ihre Antwort. Aber ich denke, du hast meinen Hauptpunkt nicht verstanden. Ich kann keine 'choise_filed_mask' verwenden, da die Werte für meine Wahl aus den Werten der Entity kommen und" sonata_type_model "verwendet werden muss, um die Ergebnisse zu erhalten. –

Verwandte Themen