在完成所有步骤之前,请勿在数据库中存储任何内容

时间:2019-04-11 20:34:43

标签: php mysql laravel api

我想制作具有多种形式和提交方式的向导UI。我在每次提交时都会进行API调用。如果表单之一失败或用户在中间退出,我希望它将所有内容还原到数据库中,但我还要存储其进度。这样可能吗?

我正在考虑创建一个metadata表,在每次API调用后我都在其中存储表单的JSON数据

metadata表结构

| apicall             | data          | method  | email       |
| ------------------- |:-------------:|:-------:| -----------:|
| /api/organization/1 | {json: data}  | POST    | abc@abc.com |
| /api/role/1         | {json: data}  | POST    | abc@abc.com |

所有步骤完成后,运行该表并调用所有这些api将数据存储在适当的表中。

有更好的方法吗?我还考虑只添加列inprogress标志。但是,无论inprogress列如何,都有很多旧代码正在使用这些表。

1 个答案:

答案 0 :(得分:0)

您有两个主要选择:

  • 使用本地javascript存储并在最后一步将所有内容作为请求发送。

  • 使用$ _SESSION变量存储数据并在最后一步中对其进行处理。确保您的脚本以session_start()开头;否则您将无权访问$ _SESSION。

最后一个选项更容易实现。