La forma devo gestire ha qualcosa di simile:Come associare un campo di modulo array con play framework scala
<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>
posso ottenere l'allineamento come questo
request.body.asFormUrlEncoded.get("features[]")
che mi quando entrambi dà gli elementi sono selezionati List(4, 8)
Ma quando provo a legare questo in una forma
case class MyFeatures(features: Seq[Long])
val myForm = Form (
mapping(
"features" -> seq(longNumber)
)(MyFeatures.apply)(MyFeatures.unapply)
)
ottengo sempre una sequenza vuota, lo stesso con "caratteristiche []"
EDIT
L'esempio precedente funziona davvero, la questione è stata da qualche altra parte. Al momento del gioco vincolante traduce le caratteristiche di funzionalità [0] = 4 e caratteristiche [1] = 8 che viene poi gestito correttamente nel seq (...) o di un elenco (...) mappature
si può mostrare un po 'più del codice circostante, come come si associa il modulo dalla richiesta. Inoltre, non ci sono funzioni apply/non per myForm? –
Ok, c'è qualcosa di strano, secondo il nome del codice bind del modulo [] dovrebbe essere esteso al nome [0], nome [1] ... Dovrò eseguire il debug un po 'di più. https://github.com/playframework/playframework/blob/2.2.x/framework/src/play/src/main/scala/play/api/data/Form.scala#L90 – Somatik
Ok, il mio problema era totalmente altrove , usando il nome del campo sbagliato nel mio modulo, l'esempio fornito funziona correttamente – Somatik