我目前持续从数据库中提取产品列表并在屏幕上显示它们。我想使用数据库中的Id将有关这些产品的一些信息存储在cookie中,并链接到更详细的信息页面。根据我的理解,ID仅出现在持久性实体中而不是实际的产品类型中?这是否意味着我应该存储一个附加字段,其中包含我可以在cookie中使用的随机字符串,或者是否有办法访问数据库中使用的id?我将使用JavaScript添加cookie。
到目前为止,我刚刚使用过PHP,我将使用该ID。我不确定Yesod中的这个是否相同,因为类型安全或者有最好的练习方法。
答案 0 :(得分:2)
如果你想在处理程序中获取记录实体的id,请执行以下操作:
(Entity key _) <- runDB $ getBy ...
不使用id获取值的查询(例如:get)将返回包含id和值的实体。
请参阅: http://www.yesodweb.com/book/persistent#persistent_fetching_by_unique_constraint
你可以看到getBy返回一个包含在may中的(Entity personId person) 这也适用于selectList