0
4

1 回答 1

3

不同之处在于get ...返回一个普通User的而不是一个Entity User,所以这将起作用:

altSingleUser :: Int64 -> App User
altSingleUser userid = do
    let foo = get (toSqlKey userid) :: SqlPersistT IO (Maybe User)
    maybeUser <- runDb $ foo
    case maybeUser of
         Nothing ->
            throwError err404
         Just person ->
            return person

如果要返回一个Entity User,只需将最后一个 return 语句更改为:

return $ Entity { entityKey = toSqlKey userid, entityVal = person }
于 2016-08-20T16:55:46.407 回答