- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我的配置/模型文件如下所示:
Pet
name Text
owner OwnerId
Owner
name Text
我可以这样得到宠物的名字:
$forall Entity key pet <- pets
<span>#{petName pet}
但是我如何从宠物实体获取所有者的姓名?
换句话说,foo
应该在下面:
<span>#{ownerName $ foo $ petOwner pet}
最佳答案
Yesod 不会像(例如)rails 那样构建关系函数,所以你必须自己编写这种东西。
-- just one naive example
petOwnerName :: Pet -> Handler (Maybe Text)
petOwnerName p = do
mo <- runDB $ get (petOwner p)
return $ fmap ownerName mo
请注意,这会在 Handler 中返回(并且它一定是由于需要数据库查询而导致的),这意味着您无法在插值中直接将其用作 foo
。
从字面上看,从模板中执行该操作正是您期望能够执行的操作。我要强调的是,这通常是一种设计味道,我建议您重构事物,以便您在处理程序中预先完成所有数据库查询,然后将模板需要的任何(纯)值直接传递给它。例如,您可以构建并传入 [(Pet,Owner)]
或 [(Owner, [Pet])]
。
我有一些helpers在我的一个网站中,抽象了查询数据库一对多关系的常用方法并返回像 (parent, child)
这样的元组列表,我发现这是最有用的方法。
希望这有帮助。
关于haskell - 是的持久: get Entity value within hamlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638682/
来自 Yesod Book . Hamlet automatically has access to the variables in scope when it's called. There is
我目前正在按照 tutorial on the Yesod Wiki 尝试 Yesod . 首先,我使用 yesod init 创建了一个 yesod 应用程序。 , 并创建了一个 Root 处理程序
我只是找不到如何在哈姆雷特模板中注释行。有一些注释语法吗?喜欢 -- Some code should be ignored by template 或者什么? 最佳答案 在最新版本中,行注释以$#开
使用 yesod 附带的 hamlet 模板语言,打印逗号分隔列表的最佳方式是什么? 例如假设此代码仅打印一个又一个条目,如何在元素之间插入逗号?或者甚至可以在最后一个条目之前添加一个“and”: T
例如,如果没有人登录,我想向他们显示指向他们可以注册或重新登录的链接,但如果用户已登录,我想要一种方法让他们访问他们的个人资料和其他信息信息。 最佳答案 您需要使用 Haskell 代码中的 mayb
我想测试用户是否通过身份验证并根据状态显示“登录”或“注销”链接。 目前为止 $maybe muid Logout $nothing Login 但是我得到一个错误: Couldn't mat
如何使用 hamlet从 Haskell 内部生成静态 HTML 页面的框架? 注意:这个问题故意不表现出研究成果。对于我的研究工作,请参阅下面的问答式答案。 最佳答案 hamlet 产生计算结果为
我正在尝试实现 this我的 Yesod 网络应用程序上的导航栏。我的问题是我应该如何从 javascript 调用 hamlet 文件? ..... ..... var Tabs = { '
我开始使用 Yesod 网络框架。我有一些已经存在的模板 HTML 代码,我想将它们自动转换为 Hamlet 代码结构。有没有办法做到这一点? 最佳答案 这是一个可以完成大部分工作的解决方案 perl
TH 调用 $(staticFiles "static") 转储大量 StaticRoute 类型的值. Hamlet 类型安全 URL(即 @{...} )采用 Route Foo 类型的值, 其中
我正在尝试在 webfaction 共享服务器上安装一个 Hamlet,这样我就可以在那里编译和运行我的 web 应用程序。我正在使用 Yesod 开发应用程序。 我设法从源代码编译 GHC 7 并引
我正在 Yesod (0.10) 中构建一个调查站点,但我迷失在这些类型中。这是我正在尝试做的事情的简化版本。 invitation url = do render Dear foo, plea
我遇到了一个有趣的问题,我认为它可能与 Template Haskell 相关。我正在使用 yesod 和 yesod-persistant 开发数据库的 Web 前端。我正在使用 mkPerist
背景 : 我正在研究哈姆雷特是如何工作的,有 WAI,但没有 Yesod。我没有掌握模板 Haskell,但在我深入研究它之前,我想知道是否有一个已知/快速的解决方案来完成这项任务。 规范 : 我想知
谁能指出我如何在没有 Yesod 的情况下使用 Hamlet 的示例? http://www.yesodweb.com/book/templates是一个很棒的文档,但我无法让我的 ghci sess
假设我的配置/模型文件如下所示: Pet name Text owner OwnerId Owner name Text 我可以这样得到宠物的名字: $forall Enti
如何将纯 html 格式的文件(不是 hamlet 格式的文件)加载为小部件?换句话说,我正在寻找相当于以下内容的 html: toWidget $(whamletFile "test.hamlet"
我是一名优秀的程序员,十分优秀!