0


質問: hamlet 内からMaybe PersistInt64 (おそらく primaryKey) を指定して、dataBase からレコードを取得するにはどうすればよいですか?

私がホームページを持っているとしましょう。
ログインしているユーザーが私のホームページにアクセスすると、
そのユーザーの名前が表示され、ログアウトするオプションが表示されます。
ログインしていない人が私のホームページにアクセスすると、
その人はログインを求められます。

Muid はおそらく PersistInt64です 。ログインしていない誰かがホームページにアクセスする と、PersistInt64 の代わりに何もないレコードをフェッチしようとするとエラーが発生する
ため、hamlet コード内でユーザーのレコードを取得し たいので、必要なのは muid が何もなく、それが $maybe _ <- muid のコード ブロックにある場合に、userId 別名 (fromJust muid) でレコードを取得する




getHomeR :: Handler Html
getHomeR = do
    muid <- maybeAuthId
    defaultLayout $ do
        [whamlet|
            <p>Welcome!
        $maybe _ <- muid
            <p>
                $with user <- fromJust (runDB $ get (fromJust muid)) 'does not work'        
                Welcome #{userIdent user}<br>
                <a href=@{AuthR LogoutR}>Logout
        $nothing
            <p>
                <a href=@{AuthR LoginR}>Go to the login page
|]
4

1 に答える 1