Playframework 2.0 播放表单:从安全操作映射request.user?

Playframework 2.0 播放表单:从安全操作映射request.user?,playframework-2.0,securesocial,Playframework 2.0,Securesocial,当我使用播放表单将请求映射到对象时,我希望能够访问用户。为了让事情变得更加复杂,我还使用了SecureSocial框架,因此,request.user是SecureSocial.core.SocialUser 下面的代码有问题,因为映射的doc对象是一个不可变的case类,所以我无法重新分配lender。如果可能的话,我宁愿保持不变性 我是Scala noob,所以不知道如何继续 def create = SecuredAction() { implicit request =>

当我使用播放表单将请求映射到对象时,我希望能够访问用户。为了让事情变得更加复杂,我还使用了SecureSocial框架,因此,
request.user
是SecureSocial.core.SocialUser

下面的代码有问题,因为映射的
doc
对象是一个不可变的case类,所以我无法重新分配
lender
。如果可能的话,我宁愿保持不变性

我是Scala noob,所以不知道如何继续

def create = SecuredAction() { implicit request =>
    models.Lendable.form.bindFromRequest.fold(
        errors => {
            BadRequest(errors.errorsAsJson)
        },
        doc => AsyncResult {
            // TODO: set the lender without mutating a val
            doc.lender = models.User.fromSocialUser(request.user)

            collection.insert(doc.copy()).map(_ => Ok)
        })
}
谢谢你的帮助


谢谢

您可以这样做:

doc => AsyncResult {
     val toInsert = doc.copy(lender = models.User.fromSecureUser(request.user))
     collection.insert(toInsert).map(_ => Ok)
}

谢谢你的帮助。我不知道你能做到