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

月度归档: 2022 年 6 月

  • 本文记录了在命令行中使用 git cherry-pick 将分支 A 的特定提交应用至分支 B 的操作过程。遇到冲突时使用 git cherry-pick –abort 放弃合并,随后按时间顺序依次提交正确的 ID。针对连续提交,介绍了简便语法及解决冲突后通过 git add . 与继续命令完成合并的方法,最终确认提交日志符合预期。

  • 针对模板目录中无需忽略的文件被写入数据库的问题,文章尝试使用 PHP 的 RecursiveFilterIterator 类实现自定义过滤。通过新建 ThemeViewIgnoreFinder 获取忽略规则,并扩展 ThemeViewRecursiveFilterIterator 实现 accept 方法,解决了运行时报错及子类获取问题。最终修正了文件路径过滤规则,成功避免了如 node_modules 等特定目录及文件被写入数据库,达到了预期效果。

  • 针对文件夹中存在类似 .gitignore 的配置文件 .themeignore 需要解析并应用过滤规则的问题,文章介绍了通过 Composer 安装 TOGoS/PHPGitIgnore 组件的方法。作者参考测试文件实现了具体的解析逻辑,成功通过布尔值判断文件路径是否应被忽略。最终结论显示该方法能够准确生成过滤结果,并可用于基于原目录遍历创建仅包含所需文件的新目录。

  • 本文针对 Laravel 6 中基于 Laravel Modules 开发的模块数据库迁移问题进行探讨。在模块数量较多的情况下,直接在启动脚本中添加特定模块的迁移命令并不实际。通过使用 module:publish-migration 命令,可将模块目录下的迁移文件复制至 Larav el 标准迁移目录。随后,仅需在启动脚本中执行标准的 php artisan migrate –force 命令即可完成迁移,实现了命令的统一管理。

  • 在 Laravel 6 执行数据库迁移时,遇到 SQLSTATE[42000] 报错,提示索引名称 theme_installation_version_preset_theme_store_theme_version_id_index 长度为 68,超过了 MySQL 5.7 默认 64 的限制。通过利用 Laravel 索引方法支持自定义名称的特性,将索引名称明确指定为更短的 tivp_theme_store_theme_version_id_index,仅使用表名首字母缩写。最终重新执行迁移,成功解决了该标识符过长的问题。

  • 在 Laravel 6 的数据库迁移中添加外键约束时遇到 Cannot add foreign key constraint 错误。经排查,发现是由于表 theme_asset_version 的字段 asset_id 类型与 theme_asset 的主键 id 类型不一致。将 theme_asset_version 表的 asset_id 字段类型调整为 unsignedBigInteger 后,确保了两表字段类型一致,成功解决了该报错并完成了迁移。

  • 针对 Laravel 6 中表 theme_asset 的字段 theme_id 需要从 varchar(255) 修改为 char(36) 类型的需求,在尝试使用 Doctrine\DBAL 的 uuid 和 char 类型均报错后,最终决定使用 DB::statement 执行原生 SQL 来完成修改。经对比生成表的 SQL,结果符合预期。

  • PHP 7.4 可以通过 ZipArchive 类的 extractTo 方法实现 ZIP 文件解压。本文提供了具体实现参考,演示了如何将压缩文件内容释放到指定目录。操作结果显示,解压后的目录结构与原始文件名保持平级且同名,满足了基础的文件解包需求。

👨‍💻 个人品牌

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

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

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

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

👉 关于我

.env (14) add (16) AI 翻译 (31) Array (19) A Tour of Go (72) CDN 缓存 (13) CentOS (23) ChatGPT (20) ChatGPT Plus (15) chrome (19) Cloudflare (36) Codex (22) composer (42) composer.json (22) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (32) Dockerfile (15) EdgeOne (34) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (64) go-tour-i18n (14) Google AdSense (30) Go 语言 (24) Go语言 (13) 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) 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) 多语言网站 (13) 多语言翻译 (37) 开源项目 (13) 技术博客 (15) 故障排查 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (20)

2022 年 6 月
 12345
6789101112
13141516171819
20212223242526
27282930