2

我正在尝试创建一个非常简单的 CRUD 应用程序,但我不确定更新和删除记录的最佳方式是什么。我能够成功列出所有记录并创建新记录。现在我想通过应用程序删除这些记录,目前还不清楚我应该怎么做。

假设我有一个只有一个字段 Name 的 Person 表,如下所示:

Person 
   name Text

我有一个名为 PersonR 的处理程序,它列出了表中的所有人员和一个输入新人员的表单。为了处理删除和更新,我想我可以创建一个名为的隐藏字段 personId ,然后通过 InputForm 处理表单,但我无法轻松获取 ID。我试过 unKey personId 了,但它仍然有 PersistInt64 1,所以我认为这不是正确的方法,即使我设法从那里捞出 ID。

我可以采取的另一种方法是创建一个新的处理程序(例如 ListPersons)来列出所有人员,然后将 Person处理程序更改为 Person/#personId.我希望尽可能避免这种情况,并尽可能将与 Person 相关的所有操作保留在一个地方。

如果我正在考虑这项权利以及实现基本 CRUD 应用程序功能的任何建议,您能否告诉我?

更新:我最终创建了一个 PersonPanel将处理 GET 和 POST。Person处理程序负责 DELETE 和 PUT 。我最终将 4 个处理程序放在同一个 Person 处理程序文件中,这样它就不会分散在各处。希望这对其他人有帮助。

谢谢!

4

1 回答 1

1

如何toPathPieceWeb.PathPieces.PathPiece课堂上使用将键转换为Text,并将其放入隐藏字段?

我猜 yesod 使用此类将密钥转换为何Text时将密钥编码为类型安全的 URL,反之亦然。

即使您可以通过Text这种方式将密钥转换为,首选方式是将 DELETE 请求发送到Person/#personId. @{...}您可以在您的 hamlet 模板中使用生成此 URL 。

于 2013-07-16T09:02:31.237 回答