我需要使用表單輸入而不進行任何驗證。 (值是可選的),所以我試圖使用可選類型的形式,但它彈出一些錯誤。簡單地說,我需要做的是創建一個帶有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)(產品搜索。不適用)