Die Form muss ich muss so etwas umgehen:Wie ein Array Formularfeld mit Playframework scala binden
<label for="features_1">
<input type="checkbox" id="features_1" name="features[]" value="4"> foo
</label>
<label for="features_2">
<input type="checkbox" id="features_2" name="features[]" value="8"> bar
</label>
ich das Array wie diese
request.body.asFormUrlEncoded.get("features[]")
bekommen kann, die mir gibt, wenn beide Titel sind List(4, 8)
ausgewählt Aber wenn ich versuche, dies in einer Form zu binden
case class MyFeatures(features: Seq[Long])
val myForm = Form (
mapping(
"features" -> seq(longNumber)
)(MyFeatures.apply)(MyFeatures.unapply)
)
ich immer eine leere Sequenz, das gleiche mit "Eigenschaften []"
EDIT
Das obige Beispiel funktioniert tatsächlich bekommen, war das Problem woanders. Bei der Bindung mit den Merkmalen Spiel übersetzt Funktion [0] = 4 und Funktionen [1] = 8, die dann in der Seq richtig gehandhabt wird (...) oder Liste (...) Mappings
Können Sie ein bisschen mehr von dem umgebenden Code zeigen, wie, wie Sie das Formular aus dem Antrag binden. Gibt es auch keine Funktionen zum Anwenden/Auflösen auf myForm? –
Ok, etwas ist fischig, entsprechend der Form binde code name [] Werte sollten zu name [0], name [1] erweitert werden ... Ich werde das ein bisschen mehr debuggen müssen. https://github.com/playframework/playframework/blob/2.2.x/framework/src/play/src/main/scala/play/api/data/Form.scala#L90 – Somatik
Ok, mein Problem war total woanders Mit dem falschen Feldnamen in meinem Formular funktioniert das mitgelieferte Beispiel korrekt – Somatik