5
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)}
       |]

当我运行此代码时,我将获得数据库中所有狗键的列表,
如下所示:

  • PersistInt64 1
  • PersistInt64 2
  • PersistInt64 3
  • PersistInt64 4
  • ETC

但我真正想要的是
像这样显示键的纯值:

  • 1
  • 2
  • 3
  • 4
  • ETC

我的问题是我怎样才能做到这一点。

4

2 回答 2

2

改变

#{show $ unKey (dogid)}

#{toPathPiece dogid}
于 2014-04-06T23:18:29.983 回答
2

您需要从KeyBackend第一个中提取密钥,如下所示:

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

你现在应该可以做

#{extractKey dogid}
于 2013-11-22T11:00:29.993 回答