私はUserクラスからユーザーIDを変換し、それをPlayに保存しようとしています!セッション変数。しかし、私はそのセッション変数を出力しようとすると、空の文字列を返します。これは簡単な認証です。認証中Scala longから文字列への変換が空白になる
:プレイ中
session += "userid" -> user.id.toString
印刷セッション変数! Scalaのビュー:
@ctx("userid")
全体認証DEF:
def authenticate(login:LoginAttempt) = {
println("in authenticate")
User.authenticate(login.username, login.password) match {
case Some(user:User) => {
session += "username" -> user.emailAddress
session += "userid" -> user.id.toString
session += "name" -> user.name
session += "accounts" -> user.accounts.toString
Redirect(session("path").getOrElse("/"))
}
case _ => {
flash += "error" -> "Wrong username or password."
Action(Authentication.login)
}
}
}
そして、Userクラス:
case class User(
val id: Long,
ソリューション?user.id
がセッションに格納されない原因となっている、または間違っているのは何ですか?ありがとう
ここに投稿する前にすべてを確認しても、初期化エラーのようです:セッションを初期化しましたか?あなたはそれを使用する前にユーザーを初期化していますか? そうでなければ、 'Long'と' String'とで何が変わるのかわかりません。 –
両方とも初期化されています。セッションに保存したユーザー名のような文字列にアクセスできます。私の唯一の他の推測は、私は遊びの "機能"が欠けていることです!セッション変数。 – crockpotveggies
実際、私は現在、liftwebで同じ順序の問題を抱えていますが、 'SessionVar'では動作しますが、' RequestVar'では動作しません。 –