1
4

1 回答 1

1

谢谢@Michael Snoyman,你说得对,我只需要使用 checkM

demoForm :: Maybe Demo -> AForm Handler Demo
demoForm   demo = Demo 
                <$> areq nitField (bfs (MsgName)) (demoFieldOne <$> demo)
                <*> areq intField (bfs (MsgName)) (demoFieldTwo <$> demo)
           where 
            nitField = checkM validateNit textField
            validateNit input = do
              mbNit <- runDB $ selectList [CompanyName ==. input] []
              return $ case null mbNit of
                True  -> Left (MsgErrNit :: AppMessage)
                False -> Right input          
于 2016-10-24T02:52:21.120 回答