Redirect 如何按id删除项目并重定向?
我想做一个功能,删除一个项目的id和重定向到用户的其他页面Redirect 如何按id删除项目并重定向?,redirect,yesod,Redirect,Yesod,我想做一个功能,删除一个项目的id和重定向到用户的其他页面 deleteItemR::ItemId->Html deleteItemR itemid=runDB$delete itemid 重定向项目r 我用其他方法尝试了很多次,但效果并不理想。您的代码应该如下所示: deleteItemR :: ItemId -> Handler Html deleteItemR itemid = do runDB $ get404 itemid runDB $ delete itemi
deleteItemR::ItemId->Html
deleteItemR itemid=runDB$delete itemid
重定向项目r
我用其他方法尝试了很多次,但效果并不理想。您的代码应该如下所示:
deleteItemR :: ItemId -> Handler Html
deleteItemR itemid = do
runDB $ get404 itemid
runDB $ delete itemid
setMessage . toHtml $ ("Item deleted" :: Text)
redirectUltDest ItemR
首先,函数签名不能是ItemID->Html
,必须在处理程序中执行
您还需要使用do
符号来模拟Haskell中的一系列操作
请注意,这样一个序列中的任何操作都可以结束执行。例如,runDB$get404 itemid
将尝试获取itemid
引用的项。如果不存在,用户将被重定向到404页面(未找到),而不尝试执行其他操作
我们需要runDB$get404 itemid
操作,因为runDB$delete itemid
操作即使项目不存在也不会结束序列。因此,它将表明一个项目已被删除,尽管没有