我想知道是否可以合并 JsResult 对象,类似于 play 2.1+ 中的 ~> 运算符。在下面的代码中,我想验证两个输入,然后相应地更新用户信息。
下面两个 validate 方法调用之间的and运算符无效。在以下场景中,有没有办法将两个 JsResult 对象组合在一起?
def update(uid:String) = Action { request=>
( JsString(uid).validate[BSONObjectID] **and** request.body.validate[User]) match {
case JsSuccess(user,_) => Async {
collection.update(Json.obj("_id"->uid),v).map{
case someError:LastError if someError.err.isDefined => ....
case noError => ...
}
}
case errors:JsError => Ok(JsError.toFlatJson(errors))
}
}