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

分类: Yii 2

  • 针对 Yii 2.0 中 RESTful API 跨域请求失败及响应 404 的问题,通过在本地构建 Ajax 请求示例排查,参考官方指南将 Cross-Origin Resource Sharing 过滤器添加到控制器。调整前端请求头,将 Content-Type 从 application/json 改为 application/x-www-form-urlencoded 后,服务端成功接收请求数据并返回 200 状态码,解决了跨域资源共享问题。

  • 文章记录了在 Yii 2.0 框架中使 RESTful API 的资源详情接口同时支持 GET 与 POST 请求的过程。针对 POST 请求返回 404 和 405 错误的问题,先后调整了路由配置并覆盖了控制器中的 verbs 方法以添加对 POST 动词的支持。最终实现了通过两种 HTTP 动词成功获取指定资源详情并返回 200 状态码。

  • 执行 composer update 时提示 Package codeception/base is abandoned,由于 Yii 2 高级项目模板已不再依赖该包,通过对比官方仓库的配置文件修改本地 composer.json,使其与官方保持一致。再次执行更新命令后,开发依赖项升级完成,废弃提示消失。

  • 本文介绍了在 Yii 2.0 控制台命令行中为动作方法添加租户 ID 参数的实现过程。通过设置参数默认值并进行非空校验,确保其在指定集合中存在。文章详细阐述了基于同步时间对数组进行排序,以及将指定租户 ID 调整至数组首位的逻辑处理,最终通过打印排序前后的数组验证了代码符合预期。

  • 针对 Yii 2.0 中 Redis ActiveRecord 出现主键 ID 重复的问题,经排查发现是由用于存储索引的 Redis 键值重复导致。通过本地环境复现,确认该组件无法确保主键 ID 唯一性。最终决定放弃插入操作,仅执行更新逻辑,若 Redis 中记录不存在则响应 404,以此防止新数据产生重复,而对于已有的重复数据则需手动处理。

  • 针对 Yii 2.0 中配置多个数据库连接组件的场景,文章介绍了通过将迁移文件存放到不同目录来实现管理的策略。以 db 和 statDb 为例,需分别指定对应的控制台迁移目录,并在生成迁移文件时使用特定路径参数。随后通过命令行工具将各自目录下的脚本提交至对应的数据库组件,最终验证了迁移历史记录符合预期。

  • 本文探讨了在 Yii 2.0 中配置多个数据库应用组件时 Gii 的代码生成流程。文章指出,当选择非默认数据库连接 ID 时,表名下拉列表仅显示对应的表,生成的模型文件会包含 getDb() 方法;而选择默认数据库 ID 时,初始可能无法显示表列表需手动填写,且生成的模型不包含 getDb() 方法。此外,执行预览或生成操作后,默认数据库的表列表即可正常显示。

  • 本文记录了将 /vendor 目录加入 Git 仓库以配合 Docker 部署的排查过程。起初因删除 composer install 导致 Rancher 启动失败,经分析发现 vendor 目录下存在 .git 子目录阻碍了文件提交。通过删除 .git 目录并重新提交,同时使用 composer install –no-dev 优化依赖,最终解决了迁移命令报错问题,并将 Jenkins 构建时间大幅缩短。

  • 本文分析了 Nginx 结合 php-fpm 在 Windows 10 和 CentOS 8 环境下的串行与并行请求支持情况。通过配置不同端口和延时脚本测试,发现 Windows 环境下请求实际表现为串行,无法并行处理;而 CentOS 环境下则支持并行请求。文章还测试了在 CentOS 中通过请求本机接口节省网络开销的方法,指出并发数受限于 php-fpm 的子进程配置,最终总结了不同操作系统下的具体表现差异。

  • 为了解决一次发布需分别调用多个渠道接口的问题,文章探讨了在 Yii 2.0 中实现一键多渠道发布的方案。对比了控制器内部调用与 HTTP 调用两种方式后,因架构隔离和安全限制,最终决定采用内部 HTTP 调用方案。通过修改控制器过滤器、编写服务类及 HTTP 模型类,实现了任务组的批量同步发布。经日志与数据库验证,该方案成功完成了对企鹅号、微信等渠道的批量写入,符合预期。

👨‍💻 个人品牌

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

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