는 그냥 재생이 프레임 워크로, 지난 주 스칼라 언어를 발견했습니다, 나는 조금 혼란 스러워요 ..여러 매개 변수를 사용하기 위해 스칼라 케이스를 사용하는 방법은 무엇입니까?
내가 이름이 튜토리얼과 암호를 사용하여 간단한 양식을 만들려고 :
def addUser() = Action { implicit request =>
userForm.bindFromRequest.fold(
errors => BadRequest,
{
case (username) =>
User.create(User(NotAssigned, username, password))
Redirect(routes.Application.index())
}
)
}
그것은 반환 : 찾을 수 없습니다 값 암호
을하지만이 기능이 컨트롤러에서 작동하지 않습니다
케이스에 비밀번호를 입력해도 윙크가 안됩니다.
아이디어가 있으십니까?
Application.scala :
package controllers
import play.api._
import play.api.mvc._
import play.api.data.Form
import play.api.data.Forms.{single, nonEmptyText}
import play.api.mvc.{Action, Controller}
import anorm.NotAssigned
import models.User
object Application extends Controller {
val userForm = Form {
tuple(
"username" -> nonEmptyText,
"password" -> nonEmptyText
)
}
def index = Action {
Ok(views.html.index(userForm))
}
def addUser() = Action { implicit request =>
userForm.bindFromRequest.fold(
errors => BadRequest,
{
case (username, password) =>
User.create(User(NotAssigned, username, password))
Redirect(routes.Application.index())
}
)
}
}
User.scala :
package models
import play.api.db._
import play.api.Play.current
import anorm._
import anorm.SqlParser._
case class User(id: Pk[Long], username: String, password: String)
object User {
val simple = {
get[Pk[Long]]("id") ~
get[String]("username") ~
get[String]("password") map {
case username~password => User(id, username)
case id~username => User(id, username)
}
}
def findAll(): Seq[User] = {
DB.withConnection { implicit connection =>
SQL("SELECT * FROM user").as(User.simple *)
}
}
def create(user: User): Unit = {
DB.withConnection { implicit connection =>
SQL("INSERT INTO user(username, password) VALUES ({username}, {password})").on(
'username -> user.username ,
'password -> user.password
).executeUpdate()
}
}
}
"찾을 수 없음 : 값 튜플"이라는 오류 메시지가 표시됩니다. – Azuken
play.api.data.Forms.tuple 매핑을 참조합니다.이 예제에서는 가져 오기를 추가했습니다. – Mikesname
그것은 나를 돌려 준다 : 타입 불일치; 찾았습니다 : play.api.data.Form [(String, String)] required : play.api.data.Form [String] – Azuken