2012-07-23 4 views
1
나는 데이터베이스에서 양식 ( select)에 몇 가지 값을 넣어려고

에서 목록을 넣어하는 방법 : 형태스칼라 리프트 | SHtml.select - 데이터베이스

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 

아이디어가 있습니까? 감사합니다

답변

3

SHtml.select(..) 당신이 String 값을 선택할 수 있습니다. 그것은 튜플의 서열합니다 (값 : String를, 키 : String)로 비슷이 Kategoria 엔티티의 MappedString 필드

val kateg = Kategoria.findAll.map(a => (a.id.toString , a.nazwa.is)) 

경우이 경우

당신은 아마 작성해야합니다. 즉 kategSeq[(String, String)]

의 유형을해야하지만 대신 문자열 이름 값의 Kategoria 엔티티 선택 SHtml.selectObj를 사용하는 것이 좋습니다 것입니다 :

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

확인 감사를 :) – daaatz

관련 문제