本文详解如何在 laravel 中通过点击按钮(如“accept”)将指定 id 的记录从源表(如 pending_reservations)原子化迁移至目标表(如 accepted_reservations),包含控制器逻辑、路由定义、前端交互及事务安全处理。
在 Laravel 应用中,实现“一键迁移数据”(如将待审核预约转为已通过预约)是一个典型业务场景。核心需求是:根据 ID 读取源记录 → 写入目标表 → 安全删除源记录,且三步需保证原子性(即全部成功或全部回滚)。这并非前端排序库(如 SortableJS)的适用场景——SortableJS 仅用于拖拽排序 DOM 元素,无法处理数据库表间的数据迁移。
✅ 正确实现方式如下:
// 迁移单条记录:POST /reservations/{id}/accept
Route::post('/reservations/{id}/accept', [ReservationController::class, 'accept'])->name('reservations.accept');// app/Http/Controllers/ReservationController.php
use Illuminate\Support\Facades\DB;
use App\Models\PendingReservation;
use App\Models\AcceptedReservation;
public function accept($id)
{
return DB::transaction(function () use ($id) {
// 查找并锁住源记录(防止并发冲突)
$pending = PendingReservation::findOrFail($id);
// 将数据复制到目标模型(自动过滤不可批量赋值字段)
$accepted = Accepted
Reservation::create($pending->only([
'user_id', 'service_id', 'date', 'time', 'notes', 'created_at'
]));
// 删除源记录
$pending->delete();
return redirect()->back()->with('success', "预约 #{$id} 已成功接受!");
});
}⚠️ 注意事项:使用 DB::transaction() 确保迁移+删除的原子性;findOrFail() 自动抛出 404 异常,配合事务可避免部分执行;create($attributes) 仅写入 $fillable 白名单字段,保障安全性;若需保留原始 created_at 时间,请在 AcceptedReservation 模型中设置 public $timestamps = false; 或手动赋值。
通过以上方案,你将获得一个健壮、安全、符合 Laravel 最佳实践的数据迁移流程——无需第三方排序库,专注服务端逻辑与数据一致性。
# php
# laravel
# js
# 前端
# cad
# app
# ai
# 路由
# 拖拽排序
# red
# 封装
# public
# dom
# 异步
# 数据库
# 是一个
# 进阶
# 请在
# 你将
# 第三方
# 抛出
# 三步
# 一键
# 服务端
# 锁住
相关文章:
建站之星展会模板:智能建站与自助搭建高效解决方案
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
怎么将XML数据可视化 D3.js加载XML
Swift中循环语句中的转移语句 break 和 continue
建站之星如何实现五合一智能建站与营销推广?
如何在景安服务器上快速搭建个人网站?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
相册网站制作软件,图片上的网址怎么复制?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
制作表格网站有哪些,线上表格怎么弄?
建站之星安装后如何自定义网站颜色与字体?
如何在建站之星网店版论坛获取技术支持?
建站主机如何安装配置?新手必看操作指南
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
,石家庄四十八中学官网?
如何快速搭建高效可靠的建站解决方案?
网站制作难吗安全吗,做一个网站需要多久时间?
如何解决ASP生成WAP建站中文乱码问题?
如何通过wdcp面板快速创建网站?
如何注册花生壳免费域名并搭建个人网站?
建站之星多图banner生成与模板自定义指南
如何设置并定期更换建站之星安全管理员密码?
建站为何优先选择香港服务器?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
,网站推广常用方法?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何在Tomcat中配置并部署网站项目?
如何快速建站并高效导出源代码?
如何使用Golang安装API文档生成工具_快速生成接口文档
已有域名能否直接搭建网站?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
如何选择高效响应式自助建站源码系统?
如何在建站宝盒中设置产品搜索功能?
定制建站是什么?如何实现个性化需求?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何选择网络建站服务器?高效建站必看指南
南平网站制作公司,2025年南平市事业单位报名时间?
如何制作一个表白网站视频,关于勇敢表白的小标题?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
建站10G流量真的够用吗?如何应对访问高峰?
装修招标网站设计制作流程,装修招标流程?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
婚礼视频制作网站,学习*后期制作的网站有哪些?
C++如何编写函数模板?(泛型编程入门)
*请认真填写需求信息,我们会在24小时内与您取得联系。