私はユーザー名をチェックしてパスワードをチェックするためにDAOを使用していますが、これを初めてテストするために私は電子メールのみをチェックしています。ここにDAOがあります:Scala Slick 3将来のクラスコールバックパターンの一致
def authenticate(username: String, password: String): Future[Option[User]] = {
db.run(Users.filter(_.email === username).result).map(_.headOption)
}
ここでは、検証方法が実装されたフォームがあります。私はOnSuccessとonFailueのコールバックを行うことができますが、私はonCompleteを行うことができません。 現在、それはこのようなものです:それはPattern type is incompatible with expected type, found: Option.type, required Option[User]
を言うような問題は、ここで
val loginForm = Form(
tuple(
"username" -> nonEmptyText,
"password" -> nonEmptyText
) verifying("Wrong username or password!", fields => fields match{
case (username, password) => {
val query = userDao.authenticate(username, password)
query onComplete {
case Success(Option[User]) => println("Success")
case Failure(_) => println("Failed ")
}
false
}
})
)
だから、成功のクラスがあります。 このエラーを解決する方法と、その選択クエリから結果を滑らかに取得するにはどうすればよいですか? モデルは電子メールとパスワードを値として単純です。
case Success(Some(user)) => println("Success")
case Success(None) => println("User not found")
にオンラインヘルプのための
おかげ
可能な重複[?私はプレイFrameworkの2.xで非同期フォームの検証を行うことができます(スカラ)](http://stackoverflow.com/questions/14913074/can-i:それは、
Future[Boolean]
になります –