У меня нормальный play.api.data.Form
в Play Framework 2.4. Я делаю базовую проверку в своем действии, но в моем случае, даже если пользовательские данные были синтаксически правильными, мне, возможно, придется добавлять ошибки в зависимости от результата от внешней службы.Вручную добавьте Seq [FormError] в форму в Play 2.4 (Scala)
Я получаю поле ошибок с помощью сообщений об ошибках из объекта JSON, например:
{
"name": [
"Invalid name"
],
"age": [
"Invalid age",
"Something else"
]
}
Я могу превратить этот объект JSON в Seq[FormError]
:
val fields: Seq[(String, JsValue)] = jsObjErrorFields.fields
val formErrors: Seq[FormError] = fields map { case(key, jsValue) =>
val messages: Seq[String] = jsValue.asOpt[Seq[String]] getOrElse Seq()
FormError(key, messages)
}
Я знаю о методе withError
от класса Form
, но требуется только один аргумент FormError
:
def withError(error: FormError): Form[T] = this.copy(errors = errors :+ error, value = None)
У меня такое чувство, что должно быть простое решение для этого (карта, для ...?), Но я не могу понять это.
val formWithErrors = ...
Благодарим за помощь!