如何从(Yesod/Haskell项目)的会话中获取用户ID

如何从(Yesod/Haskell项目)的会话中获取用户ID,haskell,yesod,yesod-forms,Haskell,Yesod,Yesod Forms,伙计们,我有一个小程序,我需要从会话中提取用户的ID 我不能把它放在Text/Int中,因为它说会话带有一个键(我想是Sql键),我如何将它转换为Int以用于我的项目中的其他方法 我试图从会话中恢复ID getInicioR :: Handler Html getInicioR = do uid <- lookupSession "_ID" user <- runDB $ get404 uid 使用keyToValues获取值列表 例如,如果您知道

伙计们,我有一个小程序,我需要从会话中提取用户的ID

我不能把它放在Text/Int中,因为它说会话带有一个键(我想是Sql键),我如何将它转换为Int以用于我的项目中的其他方法

我试图从会话中恢复ID

getInicioR :: Handler Html
getInicioR = do
        uid <- lookupSession "_ID"
        user <- runDB $ get404 uid 

使用
keyToValues
获取值列表

例如,如果您知道该键是一个文本值,那么您的列表将由一个
PersistText
值组成,您可以这样操作:

do uid <- lookupSession "_ID"
   let pvals = keyToValues uid
       [ PersistText txt ] = pvals
   liftIO $ print pvals            -- to see what pvals is
   -- now txt is a Text value
   ...
douid
keyToValues :: Key record -> [PersistValue]
do uid <- lookupSession "_ID"
   let pvals = keyToValues uid
       [ PersistText txt ] = pvals
   liftIO $ print pvals            -- to see what pvals is
   -- now txt is a Text value
   ...