在表单中的scala play框架中使用可选类型

在表单中的scala play框架中使用可选类型,scala,playframework,Scala,Playframework,我需要在没有任何验证的情况下使用表单输入。(值是可选的)所以我尝试在表单中使用可选类型,但它弹出一些错误。我只需要创建一个包含4个输入字段的表单,其中3个字段只需验证为文本值,另一个字段可选(其值可以为空或不为空),并且在表单提交中不验证 从stdout读取: D:\PROJECTS\test\Project\u VendorM6\app\models\ProductSearch.scala:6: 未找到:类型可选 D:\PROJECTS\test\Project\u VendorM6\app\

我需要在没有任何验证的情况下使用表单输入。(值是可选的)所以我尝试在表单中使用可选类型,但它弹出一些错误。我只需要创建一个包含4个输入字段的表单,其中3个字段只需验证为文本值,另一个字段可选(其值可以为空或不为空),并且在表单提交中不验证

从stdout读取: D:\PROJECTS\test\Project\u VendorM6\app\models\ProductSearch.scala:6: 未找到:类型可选 D:\PROJECTS\test\Project\u VendorM6\app\models\ProductSearch.scala:6: 找不到:从stdout:case类读取类型可选 ProductSearch(proname: String,brandid:String,typeid:String,supplierid:optional[String]) 案例类ProductSearch(proname:String,brandid:String,typeid:String,supplierid:optional[String])已读 从标准输出:^

这是我在controller中的表单验证

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)  
但是它会弹出两个编译错误

从stdout读取: D:\PROJECTS\test\Project\u VendorM6\app\controllers\Products。scala:39: 类型失配;从标准输出读取:找到:(字符串,字符串,字符串, 字符串)=>models.ProductSearch从标准输出读取:必需:(字符串, 字符串,字符串,选项[String])=>

从stdout读取: D:\PROJECTS\test\Project\u VendorM6\app\controllers\Products。scala:39: 对象ProductSearch中缺少方法unapply的参数;阅读 来自stdout:如果要将其视为 部分应用函数 D:\PROJECTS\test\Project\u VendorM6\app\controllers\Products。scala:39: 对象ProductSearch中缺少方法unapply的参数;跟随 如果要将此方法视为部分应用的 从标准输出读取的函数: )(ProductSearch.apply)(ProductSearch.unapply) )(ProductSearch.apply)(ProductSearch.unapply)


差不多了。模型对象的定义应使用Scala
选项

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

差不多了。模型对象的定义应使用Scala
选项

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