2013-01-02 3 views
3

스칼라에서 Play 2.0.4 프레임 워크를 사용하고 있습니다.Play framework 스칼라 - 형식으로 세션 값 가져 오기

사용자 및 팀 모델이 필요합니다.

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)) 
) 

그리고 문제가 해당 요청 양식의 "컨텍스트"에서 알 수있는 것처럼

는 것 같습니다.

누구나 해결 방법을 알고 있습니까?

답변

4

근본적인 것이 빠져 있지 않는 한 val teamFormdef으로 변경할 수 있습니다.

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)) 
) 
+1

대단히 감사합니다. That 's it :) – Steff

+3

그러면 대답을 수락해야합니다. –

관련 문제