年度归档: 2022 年
-
针对 Laravel 6 中表 theme_asset 的字段 theme_id 需要从 varchar(255) 修改为 char(36) 类型的需求,在尝试使用 Doctrine\DBAL 的 uuid 和 char 类型均报错后,最终决定使用 DB::statement 执行原生 SQL 来完成修改。经对比生成表的 SQL,结果符合预期。
-
PHP 7.4 可以通过 ZipArchive 类的 extractTo 方法实现 ZIP 文件解压。本文提供了具体实现参考,演示了如何将压缩文件内容释放到指定目录。操作结果显示,解压后的目录结构与原始文件名保持平级且同名,满足了基础的文件解包需求。
-
针对在 Laravel 6 环境下使用 Guzzle 6 将远程文件下载至服务器磁盘的需求,本文通过配置 sink 选项并传入 fopen 返回的资源流来实现文件保存。针对过程中遇到的目录不存在导致 fopen 失败的异常,采取了预先判断并递归创建目录的解决措施。此外,针对 fclose 报错的问题,通过在关闭前检查资源有效性进行了修复,最终测试确认可成功下载远程文件。
-
本文介绍了在 Laravel 6 模块中使用队列的具体操作。通过 Artisan 命令生成队列任务类并分发任务,编辑任务文件以更新数据表字段。启动队列监听后,任务成功执行并修改了数据。此外,文章还演示了在任务类中定义 failed 方法,以捕获异常并将失败信息同步写入数据库字段,从而实现完整的异常处理流程。
-
本文针对 Laravel 6 中跨多个 MySQL 数据库连接使用事务的问题进行探讨。在涉及数据库 A 和数据库 B 的跨库写入场景下,现有的仅对单库使用事务会导致脏数据问题。文章通过模型配置连接,参考社区方案对两个连接同时开启事务,并测试了不同阶段的插入失败情形。测试结果显示,在多数异常情况下事务均能正常回滚,确保数据一致性,但对于双重提交时的潜在异常处理仍留待后续分析。
-
本文探讨了在 Laravel 6 的 Eloquent ORM 中使用数据库事务的方法。鉴于应用运行于 PHP 7.0 及更高版本,代码中将捕获对象从 \Exception 替换为 \Throwable。文章展示了最终的实现代码,并通过测试验证了事务机制:故意构造失败场景时,事务成功回滚,确保三张表中均未插入数据;而在事务成功执行后,确认三张表的数据均已正确写入。
-
本文针对 Postman 提示无法建立 WebSocket 连接的错误进行了排查。在检查网络设置并确认软件版本为最新后,简单的退出登录操作未能解决问题。最终通过同时在桌面端和 Web 端完全退出登录,并切换至在 Postman 注册的账号重新登录,成功恢复了连接,推测此前使用 Google 登录的旧账号可能存在连接限制。
-
Laravel 6 的数据库迁移默认不支持直接添加表注释,参考相关解决方案后,通过修改迁移代码实现了这一功能。执行数据库迁移并查看结果,确认表注释已成功添加到数据表中。
-
在开发中常需公网域名展示本地成果或调试微信接口,为避免购买 VPS 部署的麻烦,文章介绍了在 Windows 10 中使用 frp 客户端做内网穿透的过程。内容涵盖从 GitHub 下载指定版本、处理杀毒软件拦截、配置 frpc.ini 及修改 token、设置 Nginx 端口,最终通过浏览器验证成功获得 200 响应,实现了本地服务映射到公网。
-
文章针对Laravel 6中间件中无法通过点击跳转方法的问题,分析了原有基于app函数实现的局限性。通过参考服务容器的自动注入机制,演示了如何在中间件构造函数中使用类型提示注入依赖项。重构后的代码不仅符合Laravel对象解析的规范,还成功实现了IDE中从getByName()方法直接跳转至对应定义的功能。
