没有不值得去解决的问题,也没有不值得去学习的技术!

分类: Laravel Eloquent ORM

  • 在 Laravel 6 中,模型应用了软删除后再次插入记录会出现唯一键冲突,这是因为软删除仅更新 deleted_at 字段而未从数据库物理移除记录。由于查询结果自动排除软删除数据,需要使用 withTrashed 方法获取包含软删除在内的记录,再利用 forceDelete 方法进行硬删除。永久删除记录后,再次插入新数据即可避免冲突并成功执行。

  • 本文介绍了在 Laravel 6 中实现 MySQL 表 UUID 类型字段的操作过程。通过数据库迁移添加了 char(36) 类型的字段并建立索引,在模型构造方法中使用 Str::orderedUuid() 方法设置值以利用排序功能。操作过程中遇到了批量赋值错误,通过在模型中设置相应属性为可批量赋值解决了问题,最终生成的 SQL 符合预期。

  • 在 Laravel 6 开发中,针对 API 响应中数据库 tinyint(1) 类型字段需转换为布尔值的问题,文章探讨了基于 Eloquent 修改器的实现方式。通过调整模型中的 $casts 属性,利用类型转换机制替代了原有的手动属性转换操作。经测试,当表中字段值为 0 时,API 响应正确返回 false,表明该方法符合预期,有效简化了代码逻辑。

  • 本文探讨了在 Laravel 6 框架保持默认时区为 Asia/Shanghai 的前提下,将数据库存储的日期时间调整为 UTC 的方法。通过关闭模型自动管理时间戳并定义修改器,将属性值转换为 Carbon 实例,解决了 insert 和 push 方法产生的时区问题。最终方案通过在 update 方法中手动指定 updated_at,确保所有操作写入数据库的时间均为 UTC,符合预期。

  • 本文记录了在 Laravel 6 中删除跨数据库连接的嵌套关联模型时遇到的问题与解决过程。由于无法使用数据库外键级联删除,作者通过代码删除关联模型,但在执行主模型删除时报错表不存在。经排查发现主模型连接在操作中被切换,需在删除前手动重置连接。此外,针对关联对象可能为空的情况,添加了判断逻辑以避免报错,最终实现了跨数据库安全删除。

  • 在 Laravel 6 中遍历模型对象时,直接赋值属性后未生效,经排查发现是模型文件中的设置导致值被覆盖。最终解决方案是在查询列表时使用 toArray 方法,将对象转换为数组后再进行遍历赋值,查看响应结果显示结果符合预期。

  • 本文介绍了在 Laravel 6 中调整 Eloquent 集合 API 响应结构的方法。针对现有接口中 theme_installation 字段包含过多嵌套数据的问题,文章通过修改代码逻辑,将其中的特定字段提升至第一层级与 id 平级,并移除了原有的 theme_installation 节点。最终实现的响应结构符合预期,成功优化了数据的嵌套层级。

  • 本文记录了在 Laravel 6 中解决跨数据库连接模型关联报错的过程。针对查询时报错提示表不存在的问题,经排查发现目标表位于不同数据库的连接中。通过在 Theme 和 ThemeInstallation 两个模型的关联定义中,分别显式设置对方模型所在的数据库连接,成功实现了跨数据库的模型关联查询,最终能正确获取数据或返回 NULL。

  • 本文介绍了在 Laravel 6 模块中使用队列的具体操作。通过 Artisan 命令生成队列任务类并分发任务,编辑任务文件以更新数据表字段。启动队列监听后,任务成功执行并修改了数据。此外,文章还演示了在任务类中定义 failed 方法,以捕获异常并将失败信息同步写入数据库字段,从而实现完整的异常处理流程。

  • 本文针对 Laravel 6 中跨多个 MySQL 数据库连接使用事务的问题进行探讨。在涉及数据库 A 和数据库 B 的跨库写入场景下,现有的仅对单库使用事务会导致脏数据问题。文章通过模型配置连接,参考社区方案对两个连接同时开启事务,并测试了不同阶段的插入失败情形。测试结果显示,在多数异常情况下事务均能正常回滚,确保数据一致性,但对于双重提交时的潜在异常处理仍留待后续分析。

👨‍💻 个人品牌

王世强|技术实践者 · 独立博客作者

15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

长期建设个人项目,也欢迎合适的技术交流、咨询与合作。

👉 关于我

.env (14) add (16) AI 翻译 (31) Apache (13) Array (19) A Tour of Go (69) Cache (13) CentOS (23) ChatGPT (20) ChatGPT Plus (15) chrome (19) Cloudflare (34) Codex (22) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (32) Dockerfile (15) EdgeOne (33) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (62) go-tour-i18n (14) Google AdSense (29) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (35) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (19) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (58) postman (18) Query (17) queue (16) Rancher (24) Redis (51) RESTful (27) RESTful API (23) Shopify (19) SlyTranslate (21) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (39) Windows 10 (46) WireGuard (28) WordPress (134) WordPress 多语言 (13) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (13) 多语言网站 (13) 多语言翻译 (36) 技术博客 (15) 故障排查 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 9 月
 123456
78910111213
14151617181920
21222324252627
282930