【问题标题】:Play framework Scala - get session value in a form播放框架 Scala - 以表单获取会话值
【发布时间】:2012-12-16 18:57:42
【问题描述】:

我正在使用带有 Scala 的 Play 2.0.4 框架。

我必须是用户和团队的模型。

case class User {
    var email: String,
    var username: String
}

case class Team {
    var sport: String,
    var captain: String //is the username of a User
}

在我的用户和团队控制器中,对象是通过表单创建的。对于用户来说,这很完美。并通过成功的请求,使用 .withSession() 将用户名放入会话中。也可以正常工作。

但现在我正在努力创建一个团队并从会话中检索用户名。

看起来像

val teamForm = Form[Team](
    mapping(
        sport -> nonEmptyText,
        //I actually don't have an input for captain as it should be retrieved from the session
    )
) (
    ((sport, _) => User(sport, request.session.get("username"))
    ((team: Team) => Some(team.sport, team.captain))
)

问题是请求在表单的“上下文”中是未知的。

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: forms scala session playframework playframework-2.0


    【解决方案1】:

    除非我遗漏了一些基本内容,否则您可以将您的 val teamForm 更改为 def

    def teamForm(request:Request[_]) = Form[Team](
        mapping(
            sport -> nonEmptyText,
            //I actually don't have an input for captain as it should be retrieved from the session
        )
    ) (
        ((sport, _) => User(sport, request.session.get("username"))
        ((team: Team) => Some(team.sport, team.captain))
    )
    

    【讨论】:

    • 非常感谢!就是这样:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多