是否有可能在Yesod中拥有全站点变量?假设,我有主菜单从DB收集哪些条目并在每个页面上呈现:我应该在每个处理程序中手动获取条目吗?
我试图在instance Yesod App
中的defaultLayout
声明中的Foundation.hs中执行此操作:
instance Yesod App where
...
defaultLayout widget = do
...
entries <- runDB $ selectList [RubricOnTop ==. True] []
...
但是这无法编译:我的类型不匹配Entity
与RubricGeneric
。
解决方案
$forall rubric <- map entityVal rubrics
...
在default-layout-wrapper.hamlet中。尚未在defaultLayout函数中找到解决方案。
答案 0 :(得分:3)
您展示的代码很好,但在使用类型为entries
的{{1}}而非Entity Rubric
时,您需要牢记。