Yesod - 可能是 EntityId 到可能是实体
Yesod - Maybe EntityId to Maybe Entity
首先我是一个 Haskell 菜鸟,所以如果有明显的错误,我很抱歉。
假设我有类似的东西:
Object1
stuff Text
other Object2Id Maybe
Object2
otherStuff Text
在我的 config/models 文件中
如果我有以下类型的处理程序,如何将 Object2 关联到 Object1:
getObject1R :: Object1Id -> Handler Html
如果我理解正确的话,我想从 Maybe Object2Id
到 Maybe Object
并在中间调用 runDB $ get
并且我尝试过的所有类型都不行正常起来。
谢谢
编辑
这是我认为接近但不正确的一种尝试:
object1 <- runDB $ get object1Id
maybeObj2 <- case (object1Other object1) of
Just obj2Id -> Just $ runDB $ get obj2Id
Nothing -> Nothing
编辑 2(弄明白了)
所以我想出了如何让它编译和工作!感谢您的评论和帮助。
这是我的代码(在处理程序中):
(object1, maybeObject2) <- runDB $ do
object1 <- get404 object1Id
maybeObject2 <- case (object1Other object1) of
Just object2Id -> get object2Id
Nothing -> return Nothing
return (object1,maybeObject2)
我确定有 better/faster/easier 种方法可以做到这一点,但这行得通。
所以我想出了如何让它编译和工作!感谢您的评论和帮助。
这是我的代码(在处理程序中):
(object1, maybeObject2) <- runDB $ do
object1 <- get404 object1Id
maybeObject2 <- case (object1Other object1) of
Just object2Id -> get object2Id
Nothing -> return Nothing
return (object1,maybeObject2)
我确定有 better/faster/easier 种方法可以做到,但这行得通。
首先我是一个 Haskell 菜鸟,所以如果有明显的错误,我很抱歉。
假设我有类似的东西:
Object1
stuff Text
other Object2Id Maybe
Object2
otherStuff Text
在我的 config/models 文件中
如果我有以下类型的处理程序,如何将 Object2 关联到 Object1:
getObject1R :: Object1Id -> Handler Html
如果我理解正确的话,我想从 Maybe Object2Id
到 Maybe Object
并在中间调用 runDB $ get
并且我尝试过的所有类型都不行正常起来。
谢谢
编辑
这是我认为接近但不正确的一种尝试:
object1 <- runDB $ get object1Id
maybeObj2 <- case (object1Other object1) of
Just obj2Id -> Just $ runDB $ get obj2Id
Nothing -> Nothing
编辑 2(弄明白了)
所以我想出了如何让它编译和工作!感谢您的评论和帮助。
这是我的代码(在处理程序中):
(object1, maybeObject2) <- runDB $ do
object1 <- get404 object1Id
maybeObject2 <- case (object1Other object1) of
Just object2Id -> get object2Id
Nothing -> return Nothing
return (object1,maybeObject2)
我确定有 better/faster/easier 种方法可以做到这一点,但这行得通。
所以我想出了如何让它编译和工作!感谢您的评论和帮助。
这是我的代码(在处理程序中):
(object1, maybeObject2) <- runDB $ do
object1 <- get404 object1Id
maybeObject2 <- case (object1Other object1) of
Just object2Id -> get object2Id
Nothing -> return Nothing
return (object1,maybeObject2)
我确定有 better/faster/easier 种方法可以做到,但这行得通。