如何从 (Yesod / Haskell 项目的会话中获取用户 ID
How get the user ID from the Session at (Yesod / Haskell Project
伙计们,我有一个小项目,我需要从会话中提取用户的 ID。
我不能把它放在 Text/Int 中,因为它说 Session 带有一个密钥(我认为是 Sql 密钥)我如何将它转换为 Int 以便在其他方法中使用我的项目
我尝试这样做是为了从会话中恢复 ID
getInicioR :: Handler Html
getInicioR = do
uid <- lookupSession "_ID"
user <- runDB $ get404 uid
显示以下错误消息:
Couldn't match expected type ‘Key t0’ with actual type ‘Maybe Text’
In the first argument of ‘get404’, namely ‘uid’
In the second argument of ‘($)’, namely ‘get404 uid’
使用 keyToValues
获取 PersistValue
个值的列表。
keyToValues :: Key record -> [PersistValue]
例如,如果您知道该键是一个文本值,那么您的列表将包含一个 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
...
伙计们,我有一个小项目,我需要从会话中提取用户的 ID。
我不能把它放在 Text/Int 中,因为它说 Session 带有一个密钥(我认为是 Sql 密钥)我如何将它转换为 Int 以便在其他方法中使用我的项目
我尝试这样做是为了从会话中恢复 ID
getInicioR :: Handler Html
getInicioR = do
uid <- lookupSession "_ID"
user <- runDB $ get404 uid
显示以下错误消息:
Couldn't match expected type ‘Key t0’ with actual type ‘Maybe Text’
In the first argument of ‘get404’, namely ‘uid’
In the second argument of ‘($)’, namely ‘get404 uid’
使用 keyToValues
获取 PersistValue
个值的列表。
keyToValues :: Key record -> [PersistValue]
例如,如果您知道该键是一个文本值,那么您的列表将包含一个 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
...