我试图神交合用的形式,我一直在想,如何实现验证依赖于其他字段的字段的形式。 例如,其具有登记表password
及confirm_password
字段和我想验证password == confirm_password
。
我可以做的形式已经跑了之后,在处理程序,但是这将意味着失去错误消息。
编辑:忘了提,我主要是利用Yesods合用的形式,但他们似乎是相当接近的消化,函子
我试图神交合用的形式,我一直在想,如何实现验证依赖于其他字段的字段的形式。 例如,其具有登记表password
及confirm_password
字段和我想验证password == confirm_password
。
我可以做的形式已经跑了之后,在处理程序,但是这将意味着失去错误消息。
编辑:忘了提,我主要是利用Yesods合用的形式,但他们似乎是相当接近的消化,函子
您正在使用什么类型的表格系统? 您可以轻松地做到这一点digestive-functors
,这里是我的登记表中的一个例子:
registrationForm =
Registration
<$> "username" .: text Nothing
<*> "password" .: passwordConfirmer
where passwordConfirmer =
validate fst' $ (,) <$> ("p1" .: text Nothing)
<*> ("p2" .: text Nothing)
fst' (p1, p2) | p1 == p2 = Success p1
| otherwise = Error "Passwords must match"
在这里你可以看到我为我的“密码”字段中的值用我的passwordConfirmer
表单字段。 该字段使用2个文本字段,并将它们放入一个元组,但经过验证,它只是需要的fst
元素(虽然它可能需要snd
,我们保证他们是平等的!)。
我Registration
类型是:
data Registration = Registration
{ regUserName :: Text
, regPassword :: Text
}