Haskell - 无法将类型“PersistEntityBackend record0”与“SqlBackend”匹配
Haskell - Couldn't match type ‘PersistEntityBackend record0’ with ‘SqlBackend’
我想在 Yesod 中通过 id 获取记录。我的代码是:
getEditActorR :: Handler Html
getEditActorR = do
actorId <- runInputGet $ ireq intField "id"
actor <- runDB $ get $ Key $ PersistInt64 (fromIntegral actorId)
defaultLayout $ do
$(widgetFile "actor-edit")
我得到的错误是:
• Couldn't match type ‘PersistEntityBackend record0’
with ‘SqlBackend’
arising from a use of ‘get’
The type variable ‘record0’ is ambiguous
• In the second argument of ‘($)’, namely
‘get $ Key $ PersistInt64 (fromIntegral actorId)’
In a stmt of a 'do' block:
actor <- runDB $ get $ Key $ PersistInt64 (fromIntegral actorId)
In the expression:
do { actorId <- runInputGet $ ireq intField "id";
actor <- runDB $ get $ Key $ PersistInt64 (fromIntegral actorId);
defaultLayout $ do { (do { ... }) } }
我该如何解决?
我做的第一件事是 运行 stack ghci
.
然后我运行:info Actor
,其中Actor是我的PersistEntity的名字。
除其他外,还有:
newtype instance Key Actor = ActorKey {unActorKey :: Int}
所以我写道:
maybeActor <- runDB $ get $ ActorKey actorId
case maybeActor of
Just actor -> defaultLayout $ do
$(widgetFile "actor-edit")
Nothing -> defaultLayout $ do
$(widgetFile "actor-new")
我想在 Yesod 中通过 id 获取记录。我的代码是:
getEditActorR :: Handler Html
getEditActorR = do
actorId <- runInputGet $ ireq intField "id"
actor <- runDB $ get $ Key $ PersistInt64 (fromIntegral actorId)
defaultLayout $ do
$(widgetFile "actor-edit")
我得到的错误是:
• Couldn't match type ‘PersistEntityBackend record0’
with ‘SqlBackend’
arising from a use of ‘get’
The type variable ‘record0’ is ambiguous
• In the second argument of ‘($)’, namely
‘get $ Key $ PersistInt64 (fromIntegral actorId)’
In a stmt of a 'do' block:
actor <- runDB $ get $ Key $ PersistInt64 (fromIntegral actorId)
In the expression:
do { actorId <- runInputGet $ ireq intField "id";
actor <- runDB $ get $ Key $ PersistInt64 (fromIntegral actorId);
defaultLayout $ do { (do { ... }) } }
我该如何解决?
我做的第一件事是 运行 stack ghci
.
然后我运行:info Actor
,其中Actor是我的PersistEntity的名字。
除其他外,还有:
newtype instance Key Actor = ActorKey {unActorKey :: Int}
所以我写道:
maybeActor <- runDB $ get $ ActorKey actorId
case maybeActor of
Just actor -> defaultLayout $ do
$(widgetFile "actor-edit")
Nothing -> defaultLayout $ do
$(widgetFile "actor-new")