我想我天真地认为,当用户填写无法保存的表单并且服务器返回422 Unprocessable Entity
时,我可以使用rollbackAttributes()
并让用户输入新值并重试。
不幸的是,rollbackAttributes()
似乎离开状态root.deleted.saved
的记录,这使得它无法使用。
更多讨论here。我得到了讨论的问题,Attempted to handle event 'didSetProperty' on [...] while in state root.deleted.saved
。
如果记录不可用,回滚的重点是什么?处理这个问题的正确方法是什么?
谢谢!
更新:
至于我为什么要这样做,我有一个表单,每次更改字段时都会更新,因此对于用户来说,哪个字段无效,即刚刚编辑的字段,这是相当明显的。同时,我有一个通用的保存事件,不知道编辑了哪个字段,因此根据发生的错误而不是在每个相关字段旁边显示漂亮的上下文验证错误,我是懒惰的,只是回滚所以人可以尝试输入新值。回滚是最容易的,所以我不需要弄清楚改变了什么。
但正如评论中指出的那样,问题可能是我没有区分未保存和已保存的记录。