我正在尝试学习 Yesod 1.2,但我不知道如何访问存储在 YesodAuth 实例中的 IO 和信息。
例如,我不知道如何在 Yesod 1.2 中调用 getCurrentTime。在 Yesod 1.1 中,您可以通过调用“aformM (liftIO getCurrentTime)”来获取表单中的当前时间
同样,对于 Yesod 1.2,我无法弄清楚如何调用“requireAuthId”。
使用 Yesod 1.1,您可以通过以下代码段中以 <*> aformM 开头的两行代码获得这两位数据:
commentForm :: EntryId -> Form Comment
commentForm entryId = renderDivs $ Comment
<$> pure entryId
<*> aformM (liftIO getCurrentTime)
<*> aformM requireAuthId
<*> areq textField (fieldSettingsLabel MsgCommentName) Nothing
<*> areq textareaField (fieldSettingsLabel MsgCommentText) Nothing
我目前求助于在调用“commentForm”的代码中查询这些,但这似乎很愚蠢,因为现在我必须多次获取时间和用户 ID。
commentForm :: UTCTime -> UserId -> EntryId -> Form Comment
commentForm theTime userId entryId = renderDivs $ Comment
<$> pure entryId
<*> pure theTime
<*> pure userId
<*> areq textField (fieldSettingsLabel MsgCommentName) Nothing
<*> areq textareaField (fieldSettingsLabel MsgCommentText) Nothing
帮助!我已经看过文档很多次了,我就是无法理解它。