Dog
    name Text
    race Text

getAllDogsR :: Handler Html
getAllDogsR = do
    Dogs<- runDB $ selectList [] [Asc DogName]
    defaultLayout
        [whamlet|
            <ul>
                $forall Entity dogid dog <- Dogs
                    <li>
                        #{show $ unKey (dogid)}
       |]

当我运行此代码时,我将获得数据库中所有狗 key 的列表
像这样:
  • PersistInt64 1
  • PersistInt64 2
  • PersistInt64 3
  • PersistInt64 4

  • 但是我真正想要的是显示 key 的纯值(value)
    像这样:
  • 1
  • 2
  • 3
  • 4

  • 我的问题是如何实现这一目标。

    最佳答案

    您需要首先从KeyBackend中提取 key ,如下所示:

    extractKey :: KeyBackend backend entity -> String
    extractKey = extractKey' . unKey
      where extractKey' (PersistInt64 k) = show k
            extractKey' _ = ""
    

    您现在应该可以
    #{extractKey dogid}
    

    关于haskell - yesod如何显示PersistInt64键的纯值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19861914/

    10-13 05:18