2016-01-22 40 views
0

我需要使用表单输入而不进行任何验证。 (值是可选的),所以我试图使用可选类型的形式,但它弹出一些错误。简单地说,我需要做的是创建一个带有4个输入字段的表单,其中3个仅需要验证为文本值,另一个字段可选(其值可以为空也可以不是)并且不会在表单提交中验证可选类型用于scala play框架中

阅读从标准输出

: d:\ PROJECTS \测试\ Project_VendorM6 \程序\型号\ ProductSearch.scala:6: 未发现:类型可选 d:\ PROJECTS \测试\ Project_VendorM6 \程序\型号\ ProductSearch.scala: 6: 找不到:type optional从stdout中读取:case class ProductSearch(代名词: String,brandid:String,typeid:String,supplierid:可选[String])case class ProductSearch(proname:String,brandid:String, Ť ypeid:字符串,供应商ID:可选[字符串])从标准输出读 :^

这里是控制器

import play.api.data.Form 
import play.api.data.Forms.{mapping, nonEmptyText,bigDecimal,text,number,optional} 
private val productSearchForm: Form[ProductSearch] = Form(
      mapping(
       "proname" -> text, 
       "probrand" -> text, 
       "protype" -> text, 
       "prosup" -> optional(text) 

      )(ProductSearch.apply)(ProductSearch.unapply) 
     ) 

在这里,我的表单验证是我的模型

package models 
import play.api.db._ 
import play.api.Play.current 
import scala.collection.mutable.ListBuffer 

    case class ProductSearch(proname: String,brandid:String,typeid:String,supplierid:optional[String]) 


     object ProductSearch { 


     } 

我如下所示,在模型中没有可选关键字的情况下尝试使用:

case class ProductSearch(proname: String,brandid:String,typeid:String,supplierid:String) 

但随后其弹出2个编译错误

从标准输出读: d:\项目\测试\ Project_VendorM6 \应用\控制器\ Products.scala:39: 类型不匹配;从stdout中读取:found:(String,String,String, String)=> models.ProductSearch从stdout中读取:required:(String, String,String,Option [String])=>?从标准输出读

: d:\项目\测试\ Project_VendorM6 \应用\控制器\ Products.scala:39: 取消应用在对象产品搜索丢失论据方法;从标准输出读 :按照此方法与_' if you want to treat it as a partially applied function D:\PROJECTS\test\Project_VendorM6\app\controllers\Products.scala:39: missing arguments for method unapply in object ProductSearch; follow this method with _”如果你想要把它当作一个部分应用功能 从标准输出阅读: )(ProductSearch.apply)(ProductSearch.unapply) )(ProductSearch.apply)(产品搜索。不适用)

回答

2

几乎在那里。您对模型对象的定义应该使用Scala Option

case class ProductSearch(proname:String, 
         brandid:String, 
         typeid:String, 
         supplierid:Option[String])