我需要使用表单输入而不进行任何验证。 (值是可选的),所以我试图使用可选类型的形式,但它弹出一些错误。简单地说,我需要做的是创建一个带有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)(产品搜索。不适用)