2012-09-23 15 views
24

Für unser neues Projekt haben wir begonnen, Zend Framework 2 und Dojo 1.8 zu verwenden. ZF2 hat ein komplett neu geschriebenes Formularmodul, das jetzt das neue CollectionElement für Eins-zu-Viele-Beziehungen enthält. In Bezug auf die Benutzeroberfläche finde ich, dass dgrid am besten für solche Beziehungen passt (mit dem Editorspalten-Plugin), also habe ich damit begonnen, die ViewCollection-, FormRow- und FormElement-Viewhilfen zu erweitern, damit sie das gewünschte dgrid darstellen können. Alles war gut, bis mir klar wurde, dass ich keine Eingabe-Namen für die dgrid-Widgets festlegen kann.Verwenden von dgrid in Formsammlungen in einer Zend Framework 2-Anwendung

Ich begann mit der ZF2 documentation rearding form collections. Man kann sehen, dass die Sammlung Eingabeelemente haben Array-ähnlichen Namen wie

order[products][0][name] 
order[products][0][price] 
order[products][1][name] 
order[products][1][price] 

Auf der anderen Seite, D-Grid Konfiguration Spalte basiert, so kann ich wie

editor({ 
    field: "_dojo_textbox_505ee3a390d705_26717315", 
    label: "Name", 
    editorArgs: { 
     name: "order[products][{index}][name]", 
    } 
}, TextBox) 

Diese Spaltendefinition eine Spaltendefinition haben Definiert den gleichen Widgetnamen für alle Zeilen, was nicht mit der Anforderung für das ZF2-Datensammeldatenformat funktioniert.

Was auch ich versucht, ist die Spalte wie diese Namensgebung:

order[products][] 

, die funktioniert, aber nicht das gewünschte Format dort

order[products][][name] 

Vielleicht erlauben einen Weg, um die Daten wie folgt zu schreiben :

order[products][name][] 

und es nachträglich konvertieren lassen, aber die Lösung sieht nicht richtig aus. Außerdem versuche ich, wiederverwendbaren Code zu produzieren und möchte Datenmodifikationen vermeiden.

Da ich sehr hart versuche onSubmit/onClick Ereignisbehandlung für die Datenkonvertierung, gibt es zwei mögliche Lösungen zu vermeiden: 1. Machen D-Grid Lage einzustellen pro-Zeile-Widget Namen 2. Machen Sie ZF2 Form verstehen einige andere- als Standard-POST-Format für Sammlungen

Leider habe ich keine Ideen, wie eine dieser Lösungen getan werden kann, so werde ich sehr dankbar sein, wenn Sie mir dabei helfen können!

Da dies etwas mit meiner aktuellen Frage verbunden ist, werde ich es hier als eine Nebenfrage setzen: Was außer dieser UI-Lösung verwenden Sie für Ihre One-to-Many Formular-Schnittstellen mit Dojo?

Antwort

1

In Zend Framework Version 2 ist "Zend \ Form" selbst in der Lage, dem "Collection Element" dynamisch neue Elemente hinzuzufügen.

Sie können es überprüfen here