Kann sowohl das Entitätsfeld deaktivieren als auch seinen Wert beibehalten

In einem Formularereignis ein Feld setzen'attr' => array('readonly' => 'readonly') wird als @ gerende"disabled" = "1". Dies ist nicht der gewünschte Effekt. Ein deaktiviertes Auswahlfeld behält beim Senden einen Nullwert bei. Ein schreibgeschütztes Feld sollte den angezeigten Wert beibehalten und beibehalten. Zumindest dachte ich. Wie kann man also erreichen, dass der Wert unverändert und unveränderlich bleibt?

Bearbeiten

Ein verstecktes Feld reicht nicht aus.choice_attr hilft auch nicht.

Ich stimme ab, um diese Frage zu schließen. Ich habe keine Methode zum Anzeigen eines deaktivierten Entitätsfelds gefunden und behalte den Wert bei. Wenn Sie eine Idee haben, wie das gemacht wird ...

Ein Beispiel (in Symfony 2.8.3): Die Entität "Haushalt" verfügt über sechs Attribute, von denen jedes eine Entität in einer OneToMany-Beziehung zu "Haushalt" ist. (Die Anwendung verfügt über andere Entitäten mit ähnlichen Attributen.) Die Housing-Entität / das Household-Attribut verfügt über zwei Eigenschaften: Housing und Enabled. Der Client der Anwendung kann eine Eigenschaft auf @ setzeenabled = no wenn sie diese Eigenschaft nicht mehr verfolgen möchten.

Wenn eine Eigenschaft auf @ gesetzt ienabled = no seine Verfügbarkeit in einem neuen oder bearbeiteten Haushaltsformular wird leicht beseitigt, indem eine where-Klausel in den Abfrage-Generator des Entitätsfelds eingefügt wird, z. B.->where("h.enabled=1"). Dies führt jedoch dazu, dass die Eigenschaft disabled auf @ gesetzt wirnull. Also die Notwendigkeit, den Wert irgendwie beizubehalten.

Die ideale Lösung wäre ein Service für diese Attribute-Entity-Felder, der sowohl Werte anzeigt als auch beibehält, wenn "Nein" aktiviert ist.

ch habe versucht, einen Ereignis-Listener, ein verstecktes Feld, zu verwendechoice_attr, Ändern der Formularvorlage und des Formulardesigns ohne Erfolg. Ein ausgeblendetes Feld ist beispielsweise Text, wenn ein Entitätsfeld erforderlich ist. Das bedeutet nicht, dass es nicht möglich ist, nur, dass ich nicht über die richtige Methode gestolpert bin.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage