分类: Yii 2
-
针对 Yii 2.0 桌面与移动端应用接口复用需求,文章介绍了在保证大部分业务逻辑一致的前提下,为应对未来差异而规划不同路由的实现过程。通过配置 urlManager、建立控制器子目录及继承 Action 类,实现了移动端代码的隔离与复用。最终测试显示,在无差异时可直接继承,而在存在差异时仅需覆盖相关方法即可进行微调。
-
针对 Yii 2.0 数据库迁移中需要将 A 表数据迁移至 B 表的问题,由于 yii\db\Migration 未提供直接查询方法,本文介绍了如何利用 Query Builder 查询构建器编写迁移代码。通过批处理方式,每次仅读取少量数据至客户端内存,分 3 次完成批量 SQL 插入。最终验证显示,B 表成功写入 23 条记录,操作结果符合预期。
-
针对 Yii 2.0 控制台命令抛出异常时出现的 PHP Warning: strpos(): Empty needle 报错,文章分析了日志组件配置问题。通过查看应用日志并修改 console/config/main.php 中的日志组件配置,解决了在控制台命令行写入日志时的报错问题,确保异常信息能够正常记录。
-
文章探讨了在 Yii 2.0 框架中,如何处理选题任务与选题表同时关联栏目人员配置表的场景。针对主表查询时关联条件冲突的问题,文章通过在声明关联关系时为相同的关联表设置不同别名,实现了基于不同执行用户ID和创建用户ID的准确关联,最终生成了符合复杂查询规则的 SQL 语句。
-
本文基于 yiisoft/yii2-app-advanced 模板,记录了在 RESTful 接口应用中实现 ActiveRecord 软删除功能的过程。通过数据库迁移新增了 is_deleted 和 deleted_at 字段,重新生成模型类并附加软删除行为,同时配置了自定义 ActiveQuery 类。经测试,软删除逻辑已替换原有的状态标记,能够确保已删除数据的用户名可被复用,且列表查询默认过滤已删除资源,符合预期。
-
在使用 Composer 从 Yii 2.0.x 升级时遇到 Undefined variable: nameMatchesRequiredPackage 报错。排查发现依赖包名称已由 bower-asset/jquery.inputmask 变更为 bower-asset/inputmask。通过在更新命令中调整对应的包名称进行替换,成功完成了升级,且该错误不再出现。
-
本文针对 Rancher 容器升级后需手动执行初始化与数据库迁移命令的问题,通过编写 SHELL 脚本实现了基于环境变量的自动化运行。脚本根据 PCS_API_CFG_ENV 和 PCS_API_CFG_MIGRATE 等环境变量的值,自动执行应用初始化或数据库迁移操作,同时设置了默认值与错误提示。针对执行顺序导致的命令报错,通过重命名脚本文件确保在配置文件加载后运行。最终测试表明,该方案成功实现了容器升级后的自动化初始化与迁移。
-
针对微博微连接网页应用授权接口允许游客访问导致的安全风险,文章介绍了基于 Yii 2 框架使用 SAM-IT/yii2-urlsigner 插件实现 URL 签名与验证的过程。通过 Composer 安装插件并配置控制器和操作,实现了对 URL 参数篡改、签名缺失及超时的拦截。为解决签名在有效期内可重复使用的问题,作者进一步引入 Redis 存储 HMAC 签名并创建自定义过滤器,成功确保了签名的一次性有效性。
-
本文探讨了在 Yii 2 中处理网址参数时,为避免因类型差异导致执行冗余更新 SQL,应用 intval 过滤器引发验证规则失效的问题。分析发现,空字符串被强制转换为 0 导致规则误判。通过调整验证器顺序并将 filter 的 skipOnEmpty 属性设为 true,仅在输入非空时进行类型转换,确保验证规则正常工作且数据符合预期。
