【问题标题】:Yesod accessing a persistent entity id from hamletYesod 从 hamlet 访问持久实体 id
【发布时间】:2015-11-01 13:48:10
【问题描述】:

我目前一直从数据库中提取产品列表并将它们显示在屏幕上。我想使用数据库中的 ID 将有关这些产品的一些信息存储在 cookie 中,并链接到更详细的信息页面。据我了解,ID 仅存在于持久实体中,而不存在于实际的产品类型中?这是否意味着我应该使用可以在 cookie 中使用的随机字符串存储一个附加字段,或者有没有办法访问数据库中使用的 id?我将使用 JavaScript 添加 cookie。

到目前为止,我只使用了 PHP,为此我将使用 ID。由于类型安全,我不确定这在 Yesod 中是否相同,或者是否有最佳实践方法来做到这一点。

【问题讨论】:

    标签: haskell yesod hamlet


    【解决方案1】:

    如果您想在处理程序中获取记录实体的 ID,请执行以下操作:

    (Entity key _) <- runDB $ getBy ...
    

    不使用 id 获取值的查询(例如:get)将返回一个包含 id 和值的实体。

    见: http://www.yesodweb.com/book/persistent#persistent_fetching_by_unique_constraint

    你可以看到 getBy 返回一个 (Entity personId person) 包裹在一个可能 这也适用于 selectList

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2020-02-21
      • 2014-06-18
      • 1970-01-01
      相关资源
      最近更新 更多