以Slick形式选择多个表

时间:2014-12-26 03:26:47

标签: scala playframework-2.0 slick

我有两个表 - 项目和类别。我希望能够在视图中指定的itemForm中指定我想从中选择Category(因为Item将有一个FK到Category表中)。

重新说明:在View级别,我希望有一组输入通常映射到Item,而对于Category FK,我希望有一个由Category表填充的下拉列表。 / p>

现在的观点是:

  @form(routes.ItemController.save) {
      @inputText(itemForm("name"))
      @inputText(itemForm("description"))
      @inputText(itemForm("category"))
      @inputText(itemForm("date_acquired"))

请注意,现在的类别(如书面所示)需要一个整数。哪个是反用户 - 我想避免使用它!

对于模型 -

class Items(tag: Tag) extends
    Table[Item](tag, "Items") {
  def id = column[Int]("id", O.PrimaryKey,  O.AutoInc)
  def name = column[String]("name",  O.NotNull)
  def description = column[String]("description",  O.NotNull)
  def category_fk_id = column[Int]("category_fk_id")
  def date_acquired = column[org.joda.time.DateTime]("date_acquired",  O.NotNull)
  def sponsoring_member = column[String]("sponsoring_member",  O.NotNull)

  def * = (id.?, name, description, category_fk_id, date_acquired, sponsoring_member) <>
    (Item.tupled, Item.unapply)
}

然后是控制器中的itemForm -

object ItemController extends Controller {
  val itemForm = Form(
    mapping(
      "id" -> optional(number),
      "name" -> text,
      "description" -> text,
      "category" -> number,
      "date_acquired" -> jodaDate,
      "sponsoring_member" -> text)(Item.apply)(Item.unapply))

// Some functions here

所以 - 问题 - 我如何设置一个可以在多个表上读/写的表单?

0 个答案:

没有答案