gpt4 book ai didi

php - 如何在多个页面上继续交易

转载 作者:行者123 更新时间:2023-11-29 01:57:17 25 4
gpt4 key购买 nike

我在 3 个不同的 PHP 页面上有 3 个 HTML 表单,用于在 3 个不同的表中插入数据。

目前流程如下:

  • 用户填写第一个表格并点击“下一步”(数据被插入到数据库的第一个表中)
  • 用户填写第二个表格并点击“下一步”(数据存储在数据库的第二个表中)
  • 用户填写第三张表格并点击“完成”(数据存储在数据库的第三张表中)

我要:

提交必须仅在用户填写所有 3 个表单并单击“完成”的情况下发出。如果用户在填写所有三个表单之前在任何阶段退出/退出,则应回滚存储在表中的所有数据。

我可以使用 Laravel DB::Transaction 或者我有任何其他选择吗?请提出任何建议。

实际上在每个步骤中,用户可以在一个表中添加多条记录。例如,在第 3 步,用户可以根据需要在 subjects 表中添加任意数量的记录。我使用以下代码将这些多条记录保存在表 subjects 中:

for($i=1; $i<=Input::get('total_subjects'); $i++){
if(Input::get('sub_'.$i) != null){
$sd = new Subject;
$sd->class_detail_id = Input::get('class_detail_id');
$sd->subject_id = Input::get('sub_'.$i);
$sd->status = 'ACTIVE';
$sd->save();
}

现在的问题是:如何将 References 存储到 Subject 的所有模型?我想到的唯一解决方案是仅在第 3 步之后进行交易和 COMMIT,否则交易将回滚。

最佳答案

为什么不将表单数据放入临时 session 变量,而仅在完成第 3 步后才将 session 中的所有数据插入数据库?

为什么要改用这种方法?

1) 数据库中没有垃圾。
2) session 在用户离开您的网页后(有意或无意)自动清理。
3) 您可以在步骤之间自由移动,所有信息将自动填充或返回。
4) 只有一个数据库连接 - 更快的网站。
5) 使您能够使用交易。

关于php - 如何在多个页面上继续交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25359746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com