如何在Haskell中访问持久化实体的字段

时间:2014-12-01 01:34:28

标签: haskell

我正在使用Scotty框架在Haskell中编写REST API。我有一个定义为

的持久表
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
User json
    username Text
    number Text
    group Text Maybe
    UniqueUsername username
    UniqueNumber number
    deriving(Show)
...
]

然后我有一个抓住用户fetchUserByName :: Text -> IO (Entity User)的功能。我不理解的是,如果我有变量user :: Entity User,我该如何访问任何字段,例如该用户的用户名?我觉得这应该是完全无足轻重的,但我似乎无法在网上找到答案。或者我只是以错误的方式解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用entityVal提取您的用户项目,然后您可以使用记录名称到达所需的列(我相信它始终生成格式为格式 <tablename><columnname>来自camelcase)

print $ userGroup $ entityVal user