Yesod布局中的全站点变量(django上下文处理器模拟)

时间:2012-06-21 23:05:46

标签: haskell yesod

是否有可能在Yesod中拥有全站点变量?假设,我有主菜单从DB收集哪些条目并在每个页面上呈现:我应该在每个处理程序中手动获取条目吗?

我试图在instance Yesod App中的defaultLayout声明中的Foundation.hs中执行此操作:

    instance Yesod App where
    ...

    defaultLayout widget = do
      ...
      entries <- runDB $ selectList [RubricOnTop ==. True] []
      ...

但是这无法编译:我的类型不匹配EntityRubricGeneric

解决方案

    $forall rubric <- map entityVal rubrics
      ...

在default-layout-wrapper.hamlet中。尚未在defaultLayout函数中找到解决方案。

1 个答案:

答案 0 :(得分:3)

您展示的代码很好,但在使用类型为entries的{​​{1}}而非Entity Rubric时,您需要牢记。