如何使用slick 3在Play scala中从Rep[String]获取字符串值?
我有一个DAO方法,它返回一个未来选项,如下所示:如何使用slick 3在Play scala中从Rep[String]获取字符串值?,scala,playframework,slick,slick-3.0,playframework-2.5,Scala,Playframework,Slick,Slick 3.0,Playframework 2.5,我有一个DAO方法,它返回一个未来选项,如下所示: def authenticate(username: String, password: String): Future[Option[User]] = { val query = db.run(Users.filter(x => x.email === username && password.isBcrypted(x.password.toString())).result).map(_.headOption
def authenticate(username: String, password: String): Future[Option[User]] = {
val query = db.run(Users.filter(x => x.email === username && password.isBcrypted(x.password.toString())).result).map(_.headOption)
query
}
问题是password.isBcrypted(x.password.toString()),我试图获取x.password的值,但它是Rep[String],我试图找到如何从Rep[T]获取值,但没有找到解决方案
有什么好办法吗
解决方案
您可以在获得
结果后检查密码
:
Users.filter(_.email === username).result.map(_.headOption.filter(user => password.isBcrypted(user.password)))
谢谢,这工作顺利,但我仍然有一个问题,什么是代表在光滑?有没有更简单的方法从中获取价值?
Rep
是一种用Slick表示列的方法。它不是用来获取值的东西,而是用来编写查询的东西。
Users.filter(_.email === username).result.map(_.headOption.filter(user => password.isBcrypted(user.password)))