0
我想做一個功能,刪除一個項目的ID和重定向到用戶的其他頁面。如何通過ID和重定向刪除項目?
deleteItemR :: ItemId -> Html deleteItemR itemid = runDB $ delete itemid redirect ItemR
我試過很多次,其他的方法,但它並沒有正常工作。
我想做一個功能,刪除一個項目的ID和重定向到用戶的其他頁面。如何通過ID和重定向刪除項目?
deleteItemR :: ItemId -> Html deleteItemR itemid = runDB $ delete itemid redirect ItemR
我試過很多次,其他的方法,但它並沒有正常工作。
您的代碼應該是這樣的:
deleteItemR :: ItemId -> Handler Html
deleteItemR itemid = do
runDB $ get404 itemid
runDB $ delete itemid
setMessage . toHtml $ ("Item deleted" :: Text)
redirectUltDest ItemR
首先,你的函數的簽名不能ItemID -> Html
,它必須在Handler
執行。
您還需要使用do
表示法模擬Haskell中的一系列操作。
請注意,在這樣的序列中的任何操作都可以結束執行。例如,runDB $ get404 itemid
將嘗試獲取由itemid
引用的項目。如果它不存在,用戶將被重定向到404頁面(未找到),而不嘗試執行其他操作。
我們需要runDB $ get404 itemid
操作,因爲即使項目不存在,runDB $ delete itemid
操作也不會結束序列。因此它會表明一個項目被刪除,儘管沒有。