-1

我正在使用带有 scala 的游戏框架和

我在做什么

  1. 登录页面以登录 Web 应用程序
  2. 注册页面以注册到 Web 应用程序
  3. 登录后我想将所有数据库值存储给用户

我想做什么

当用户注册网络应用程序时,我想用当前时间和日期将用户值存储到数据库中,但我的表单出现错误。

错误:

List(FormError(dates,error.required,List())),None)

控制器/Application.scala

object Application extends Controller {

  val ta:Form[Keyword] = Form(
          mapping(
    "id" -> ignored(NotAssigned:Pk[Long]),
    "word" -> nonEmptyText,
    "blog" -> nonEmptyText,
    "cat" -> nonEmptyText,
    "score"-> of[Long],
    "summaryId"-> nonEmptyText,
    "dates" -> date("yyyy-MM-dd HH:mm:ss")
  )(Keyword.apply)(Keyword.unapply)
  )

  def index = Action {
    Ok(html.index(ta));
  }

def newTask=  Action { implicit request =>
  ta.bindFromRequest.fold(
    errors => {println(errors) 
      BadRequest(html.index(errors))},
    keywo => {

      Keyword.create(keywo)
      Ok(views.html.data(Keyword.all()))
    }
  )
}

模型/keyword.scala

case class Keyword(id: Pk[Long],word: String,blog: String,cat: String,score: Long, summaryId: String,dates: Date)

object Keyword {

 val keyw = {
    get[Pk[Long]]("keyword.id") ~
     get[String]("keyword.word")~
    get[String]("keyword.blog")~
    get[String]("keyword.cat")~
    get[Long]("keyword.score") ~ 
    get[String]("keyword.summaryId")~
    get[Date]("keyword.dates") map {
    case id~blog~cat~word~score~summaryId~dates => Keyword(id,word,blog,cat,score, summaryId,dates)
  }
}
  def all(): List[Keyword] = DB.withConnection { implicit c =>
  SQL("select * from keyword").as(Keyword.keyw *)
}

def create(key: Keyword){DB.withConnection{implicit c=> 
  SQL("insert into keyword values({word},{blog}, {cat}, {score},{summaryId},{dates})").on('word-> key.word,'blog->key.blog,
      'cat -> key.cat,
      'score-> key.score,
      'summaryId -> key.summaryId,
      'dates->new Date()).executeUpdate
}
}

视图/index.scala.html

@(taskForm: Form[Keyword])

@import helper._

@main("Todo list") {



    @form(routes.Application.newTask) {


    @inputText(taskForm("word"))
        @inputText(taskForm("blog"))
        @inputText(taskForm("cat"))
        @inputText(taskForm("score"))
        @inputText(taskForm("summaryId")) 

        <input type="submit">

        <a href="">Go Back</a>
    }


}

请给我一些想法,将日期存储到 mysql 数据库中,日期不是表单字段

4

2 回答 2

0

有两种可能的解决方案: 1. 带有日期的隐藏文本字段(保存时覆盖) 2. 为表单和 dbTable 设置一个单独的类。

于 2013-10-31T07:22:39.117 回答
0

您可以dates通过替换为表单中的字段"dates" -> date("yyyy-MM-dd HH:mm:ss")设置默认值"dates" -> ignored(new Date())。这将忽略任何已发布的“日期”数据并自动将其绑定到new Date()(或您提供的任何值)。

于 2013-11-06T03:52:21.560 回答