Forms Scala,Lift | SHtml.select-如何从数据库中放入列表

Forms Scala,Lift | SHtml.select-如何从数据库中放入列表,forms,scala,lift,Forms,Scala,Lift,我正在尝试将数据库中的一些值转换为表单(选择): val kateg = Kategoria.findAll.map(a => (a.id.toString , a.nazwa)) 其次是形式: bind("entry", xhtml, "kateg" -> SHtml.select(kateg, Empty, select ), "temat" -> SHtml.text(temat, temat = _), "opis"

我正在尝试将数据库中的一些值转换为表单(
选择
):

val kateg = Kategoria.findAll.map(a => (a.id.toString , a.nazwa))
其次是形式:

 bind("entry", xhtml,
        "kateg" -> SHtml.select(kateg, Empty, select ), 
       "temat" -> SHtml.text(temat, temat = _),
        "opis" -> SHtml.textarea(opis, opis = _, "cols" -> "80", "rows" -> "8"),
        "submit" -> SHtml.submit("Add", processEntryAdd))
然后我有一个错误:

Description Resource    Path    Location    Type
type mismatch;  found   : List[(java.lang.String, a.nazwa.type) for 
Some { val a: code.model.Kategoria }]  
required: Seq[(String, String)] Forma.scala 
/lift-todo-mongo/src/main/scala/code/snippet    
line 51 Scala Problem
有什么想法吗?谢谢。选择(…)允许您选择一个
字符串
值。 它接受一系列元组(值:
String
,键:
String

在这种情况下,您可能需要编写:

val kateg = Kategoria.findAll.map(a => (a.id.toString , a.nazwa.is))
如果nazwa是Kategoria实体的
MappedString
字段。 i、 e.kateg应具有
Seq[(字符串,字符串)]

但我建议您使用
SHtml.selectObj
来选择Kategoria实体,而不是字符串名称值:

val kateg: Seq[(Kategoria, String)] = Kategoria.findAll.map(a => (a, a.nazwa.is))
SHtml.selectObj[Kategoria](kateg, Empty, (k: Kategoria) => { .. /* assign */ .. })