我是 Yesod 和 Haskell 的新手,当我的表单具有多个属性时,我不明白应该如何处理 runFormPost 函数。我举个例子:
这是我的表格:
orderForm :: [Entity Food] -> Int -> Maybe Order -> Text -> Form Order
orderForm foods price order email = renderBootstrap3 BootstrapBasicForm $ Order
<$> pure email
<*> areq (selectFieldList foodList) "Food" (orderFood <$> order)
<*> pure price
<* bootstrapSubmit (BootstrapSubmit ("Send" :: Text) "btn-info" [])
当我在 get 处理程序中渲染它时,我是这样使用它的:
(form, _) <- generateFormPost $ orderForm foods defaultFoodPrice Nothing email
现在我想在 post 处理程序中运行表单,我不确定是否需要传递相同的参数,即使我不需要?只是传递空值的正确方法是什么?
((res, form), _) <- runFormPost $ orderForm [] 0 Nothing ""
如果我理解它,表单现在从用户的输入中获取值,所以我不需要向它传递任何参数,它应该有它需要的一切,对吧?感谢您的澄清。