使用播放2.x中,我有以下形式的映射:條件映射在遊戲中階
val relocationDtoForm: Form[RelocationDto] = Form(
mapping(
"_type" -> text,
"sourceToken" -> text,
"exchange" -> optional(jodaDate("dd/MM/yyyy")),
"completion" -> optional(jodaDate("dd/MM/yyyy")),
"expectedMoveIn" -> optional(jodaDate("dd/MM/yyyy"))
)(RelocationDto.apply)(RelocationDto.unapply)
)
我想補充驗證,這樣,如果_type ==「買賣」,然後換來的是必填字段,但如果_type ==「let」then expectedMoveIn是必填字段。我似乎找不到用標準遊戲驗證器來做到這一點的方法,有沒有辦法做到這一點?
乾杯 尼克
啊是的,我做了這個,但問題是,結果錯誤將不會綁定到該字段,它只會在表單級別。我需要在隨後的演示文稿中將該字段標記爲無效。可能嗎? – nfvindaloo
與表格映射,似乎並不如此。表單字段在彼此綁定之前並不知道對方的任何內容。當驗證依賴於這樣的多個字段時,錯誤是否應該被綁定到一個呢?如果你真的想這樣做,看起來你必須在窗體外部驗證你的對象(一旦它被綁定),並使用'withError'自己添加錯誤。 http://www.playframework.com/documentation/2.2.x/api/scala/index.html#play.api.data.Form –
我需要這樣做的原因是,我的表單,因此我的dto是多層次的,目的,並映射到兩個案例類之一。在我嘗試做到這一點之前,我需要驗證它會將映射確定(基於_type)。所以我認爲有必要這樣做,正如你所建議的那樣,儘管在控制器中使用手動調用看起來像現在的方式。謝謝! NFV – nfvindaloo