2016-06-08 6 views
1

들에 세션에서 사용자의 ID를 얻고 난 세션에서 사용자의 드 ID를 extrat해야합니다.(Yesod/하스켈 프로젝트 내가 조금 인텔리 가지고

나는 텍스트에 넣을 수없는 방법/지능이 세션은 내가 그것을 내가 세션에서 ID를 복구하기 위해 그것을 할 시도

내 프로젝트에서 다른 방법으로 사용하는 int로 converte 수있는 방법을 (내가 생각는 SQL 키)이 키를 가지고 있다고하기 때문에

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’ 

답변

2

PersistValue 값 목록을 얻으려면 keyToValues을 사용하십시오. 당신이 알고있는 경우에

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 
    ...