提升模板和片段返回光滑的查询结果

时间:2013-10-02 05:46:44

标签: lift slick

请原谅这是一个非常基本的问题,我正在学习。 :(

我有这堂课:

class X  {
  def do_something {
    db withSession {
      val qresult = for { 
         (d, o) <- TABLE1 innerJoin TABLE2 on (_.TB1ID === _.TB2ID)
      } yield(d, o)
    }
  }
}

我想建立一个HTML表格,如:

(record1)  d.TB1ID d.F1VALUE d.F2VALUE o.F1VALUE o.F2VALUE o.TB2ID
(record2)  d.TB1ID d.F1VALUE d.F2VALUE o.F1VALUE o.F2VALUE o.TB2ID
....

有人会友好地给我一个指针在哪里看?我找到了很多例子,但是我无法将qresult值连接到我可以在模板中绑定的内容。

我正在使用Lift and Slick 1.0.1。

1 个答案:

答案 0 :(得分:1)

假设您的HTML模板中有一个表格如下:

<table>
  <tr>
    <td class="TB1ID"></td>
    <td class="dF1VALUE"></td>
    <td class="dF2VALUE"></td>
    <td class="oF1VALUE"></td>
    <td class="oF2VALUE"></td>
    <td class="TB2ID"></td>
  </tr>
</table>

然后,你应该可以让你的CSS变换看起来像:

"tr" #> qresult.map { case (d, o) =>
  ".TB1ID *" #> d.TB1ID &
  ".dF1VALUE *" #> d.F1VALUE &
  ".dF2VALUE *" #> d.F2VALUE &
  ".oF1VALUE *" #> o.F1VALUE &
  ".oF1VALUE *" #> o.F2VALUE &
  ".TB2ID *" #> o.TB2ID 
}

这将关键TR并重复qresult列表中的每一行。然后,对于每个列(由上面的class属性表示),它将输出您想要与之关联的值。请注意,选择器中的*会将右侧的值附加为TD的子项,而不是将其替换为右侧的值。

您可以在此处找到有关CSS选择器和输出HTML的更多信息: